Концепція
Запам'ятовування чисел може бути важким. Запам'ятати слово може бути простіше. Для того, щоб запам'ятати великі числа, я створив спосіб вимовляти їх летописом.
Правила
Кожна цифра спочатку замінюється відповідною літерою:
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?