Используя String и Array в качестве входных данных, ваша задача состоит в том, чтобы вывести текст, который будет вводить String при вводе на обычной мобильной клавиатуре. В мобильной клавиатуре буква набирается нажатием кнопки n раз, где n - это положение, в котором буква находится на ярлыке кнопки. Итак, 22
должен выходной b
.
правила
Массив помощников будет содержать карту персонажей (
[" ",".,!","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"]
). Это будет дано, чтобы сэкономить вам несколько байтов.#
Символ будет переключать случай. Начальный регистр будет ниже. Так2#3
должен выходнойaD
.0
Добавит пробел. Итак,202
должен выходнойa a
.Во
входной строке будет пробел ( ), чтобы начать новую букву с той же цифровой кнопки. Например
aa
, для ввода введите String2 2
.Гарантируется, что входная строка всегда будет действительным кодом клавиатуры.
вход
Вы можете использовать любой способ, которым поддерживает ваш язык.
Выход
Вы можете вывести результат любым удобным вам способом. Функция return
также разрешена.
Тестовые случаи
#4440555#666888330#999#66688111 -> "I Love You!"
#6#33777 7779990#222#4477744477778627777111 -> "Merry Christmas!"
#44#27 79990#66#3390#999#332777111 -> "Happy New Year!"
Это код-гольф , поэтому выигрывает самый короткий код в байтах!
year
в последнем тесте неверна.##
нужно ли обрабатывать двойное пространство?Ответы:
Pyth - 31 байт
Новая ключевая вещь стоила мне слишком дорого.
Тестовый пакет .
источник
JavaScript,
10599 байтисточник
l
), а затем используяc?l:l.toUpperCase()
.Perl 6 ,
11997 байтрешение на основе карты 119 байтов
Попытайся
решение на основе замещения 97 байт
Попытайся
Expanded:
источник
JavaScript ES6 - 124 байта
Golfed:
Ungolfed:
источник
JavaScript, 301 байт
Я знаю, что это очень долго, но это лучшее, что я могу.
источник
V , 60 байтов
(Там непечатный
½<Ctrl+r>a
)Попробуйте онлайн!
объяснять
источник