Концепція
Запам'ятовування чисел може бути важким. Запам'ятати слово може бути простіше. Для того, щоб запам'ятати великі числа, я створив спосіб вимовляти їх летописом.
Правила
Кожна цифра спочатку замінюється відповідною літерою:
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
Що неможливо
- Букви та цифри змішані одним словом
- Два послідовних приголосних або два послідовні голосні
- Листи, яких немає у списку вище
- Інші персонажі
Правила
Мета цього кодового гольфу - створити двосторонній перекладач цієї концепції.
- Ваша програма спочатку повинна зрозуміти сама, чи це переклад з букви в номер або з числа в букву.
- Він повинен перевірити правильність формування запису.
- Якщо все правильно, покажіть переклад.
- Інше, відобразити повідомлення про помилку, нічого, повернути значення фальси або зламати програму.
Деталі
- Номер / рядок введення можна вводити в будь-якому форматі (stdin, аргумент, ...)
- Це код-гольф , тому найкоротша відповідь виграє.
- Стандартні лазівки заборонені.
AB23
; AEI
; BB
; Z
; ACE
; giga
; !@#$
; -123
; і т. д. Також, виходячи з правил перевірки, ми можемо перетворити 6164735732 => GIGATESTER
, але GIGATESTER
призведе до помилкового значення через ST
(два послідовних приголосних). У способі налаштування вашого виклику в даний час основна частина виклику - це перевірка замість конверсії. Я з цим добре, але в цьому випадку валідацію слід визначити трохи краще.
GIGATESTER
бутиGIGATESUTER
?