Основываясь на списке чисел и их эквивалентных букв, возьмите строковый ввод, замените символы этой строки эквивалентным числом / буквой и выведите результат.
Список
- 1 = а
- 2 = б
- 3 = с
- 4 = д
- 5 = е
- 6 = f
- 7 = г
- 8 = ч
- 9 = я
- 0 = j
вход
thisisastring1124
Выход
t89s9s1str9n7aabd
правила
- Числа эквивалентны только строчным буквам.
- Любой символ вне списка будет оставлен как есть.
- Входная строка не должна содержать пробелов.
- Допускается либо полная программа, либо функция.
- Так как это код-гольф, побеждает меньше байтов.
Ответы:
Баш, 18 байт
Попробуйте онлайн!
источник
Python 3 ,
7668 байтПопробуйте онлайн!
источник
Perl 5 , 17 байт
Попробуйте онлайн!
источник
05AB1E ,
139 байтПопробуйте онлайн!
объяснение
источник
Perl 6 ,
4523 байтаПопробуйте онлайн!
Просто регулярное выражение транслитерации.
источник
TR/1..90a..j/a..j1..90/
tio.run/##K0gtyjH7n1upoJamYKvwvzokSN9QT8/SIFFPL0sfRIB5@rX/…Сетчатка 0.8.2 , 12 байт
Попробуйте онлайн! Объяснение:
Выполните транслитерацию.
Список источник письма
a-j
, затем0
, затем цифры9-1
.Список адресатов список источников обратное, т.е. цифры
1-9
, а затем0
, затем буквыj-a
.источник
J , 38 байт
Попробуйте онлайн!
источник
Python 2 ,
8278 байтПопробуйте онлайн!
-4 с благодарностью @ovs
источник
JavaScript (ES6), 66 байт
Попробуйте онлайн!
источник
R , 40 байт
Попробуйте онлайн!
Удивительно, но R пристойно в этом виде строки вызова, поскольку он имеет
tr
-like функцию как в ответе Баш . Не знаю, почему он существует, но я благодарен за это!источник
MS-SQL, 71 байт
Новая функция SQL 2017
TRANSLATE
выполняет замену отдельных символов, поэтому идеально подходит для этой цели. Смотрите мой аналогичный ответ в предыдущем вызове .Ввод осуществляется с уже существующей таблицей т с колонками VARCHAR V , в соответствии с нашими правилами ввода - вывода . Чтобы заменить только строчные буквы, таблица должна быть создана с использованием сортировки с учетом регистра :
источник
Желе , 16 байт
Попробуйте онлайн!
источник
Pyth , 13 байт
Попробуй это здесь!
объяснение
источник
Haskell ,
8066 байтПопробуйте онлайн!
источник
REXX, 57 байт
источник
C (gcc) ,
8172 байтаСпасибо Джакомо Гарабелло за предложения.
Попробуйте онлайн!
источник
putchar(...)
->*s=...
и другие 4, заменив*s-48U<11
на*s<59
Попробовать онлайн!*s<59
прерывается, если$
во входных данных присутствуют такие символы, как я.*s-48U
([0..47] становится [-48 ..- 1], что становится большим значением без знака.) Поскольку в вопросе не указано, не - Алюминий был действительным, я пошел с более консервативной интерпретацией.Powershell, 94 байта
Тестовый скрипт:
объяснение
$args
- аргументные строки$args|% t*y
- расширяется до|ForEach-Object -Method ToCharArray
эквивалента"$args".ToCharArray()
($s='1a2b3c4d5e6f7g8h9i0j').IndexOf($_)
- найти символ в строке, возвращает позицию или -1, если не найден. Пусть $ s хранит строку, которая содержит парный символ в соседних позициях, которые отличаются последним битом: 0 + 1, 2 + 3, 4 + 5 ....if(1+($p=...))
- если позиция была найдена$p-bxor1
- бит положения xor 1источник
-bxor1
.R , 107 байт
Попробуйте онлайн!
Первая попытка, безусловно, улучшенная ...
источник
chartr
Я думаю, твой друг здесь.Ржавчина , 96 байт
Попробуйте онлайн!
Не Unicode-безопасный, если бы это было, это было бы еще дольше.
источник
К4 , 38 байт
Решение:
Объяснение:
Поиск каждого символа в списке,
"abcdefghij1234567890"
а затем индексировать в список,"1234567890abcdefghijX"
гдеX
находится оригинальный символ.Нужно найти более короткий способ построения струн ...
Бонус:
Другое решение для 38 байтов :
источник
Ябасич , 135 байт
Принимает ввод с консоли и выводит на консоль.
Попробуйте онлайн!
источник
Japt ,
4442 байтаПопробуйте онлайн!
источник
sed, 44 байта
Немного скучно, я признаю.
Тестирование:
источник