концепция
Запоминание цифр может быть трудным. Вспомнить слово может быть проще. Для запоминания больших чисел я создал способ произносить их в стиле буквального разговора.
правила
Каждая цифра сначала заменяется соответствующей буквой:
0 => O
1 => I
2 => R
3 => E
4 => A
5 => S
6 => G
7 => T
8 => B
9 => P
После замены делаются две дополнительные вещи для улучшения произношения:
Между двумя согласными
Uдобавляется.Между двумя гласными
Nдобавляется.
Примеры / тесты
512431 => SIRANENI
834677081 => BENAGUTUTOBI
3141592 => ENINANISUPUR
1234567890 => IRENASUGUTUBUPO
6164817 => GIGABIT
Что невозможно
- Буквы и цифры смешаны в одном слове
- Два последовательных согласных или два последовательных гласных
- Письма, которых нет в списке выше
- Другие персонажи
правила
Цель этого code-golf - создать двухсторонний переводчик для этой концепции.
- Ваша программа должна сначала понять, переводится ли она на цифру или цифру.
- Он должен проверить правильность формирования записи.
- Если все правильно, покажите перевод.
- Иначе, отобразить сообщение об ошибке, ничего, вернуть значение фальси или завершить работу программы.
Детали
- Введенное число / строку можно вводить в любом формате, который вы хотите (стандартный, аргумент, ...)
- Это код-гольф , поэтому выигрывает самый короткий ответ.
- Стандартные лазейки запрещены.
AB23;AEI; BB; Z; ACE; giga; !@#$; -123; и т.д. Кроме того, на основе правил валидации мы можем преобразовать 6164735732 => GIGATESTER, но GIGATESTERэто приведет к ложному значению из-за ST(правила двух последовательных согласных). То, как ваша задача в настоящее время настроена, основной частью задачи является проверка, а не преобразование. Я в порядке с этим, но в этом случае проверка должна быть определена немного лучше.
GIGATESTERбытьGIGATESUTER?