Concepto
Recordar los números puede ser difícil. Recordar una palabra puede ser más fácil. Con el fin de memorizar grandes números, creé una forma de pronunciarlos de forma similar a un discurso.
Reglas
Cada dígito se reemplaza primero por su letra correspondiente:
0 => O
1 => I
2 => R
3 => E
4 => A
5 => S
6 => G
7 => T
8 => B
9 => P
Después del reemplazo, se hacen dos cosas adicionales para mejorar la pronunciación:
Entre dos consonantes,
Use agrega a.Entre dos vocales,
Nse agrega a.
Ejemplos / casos de prueba
512431 => SIRANENI
834677081 => BENAGUTUTOBI
3141592 => ENINANISUPUR
1234567890 => IRENASUGUTUBUPO
6164817 => GIGABIT
Que es imposible
- Letras y números mezclados en la misma palabra
- Dos consonantes sucesivas o dos vocales sucesivas.
- Cartas que no están en la lista de arriba
- Otros personajes
Reglas
El objetivo de este código de golf es crear un traductor bidireccional para este concepto.
- Su programa primero debe entender por sí mismo si se trata de una traducción de letra a número o de número a letra.
- Debe verificar que la entrada esté bien formada.
- Si todo es correcto, muestre la traducción.
- De lo contrario, muestre un mensaje de error, nada, devuelva un valor falso o bloquee el programa.
Detalles
- El número / cadena de entrada se puede ingresar en el formato que desee (stdin, argumento, ...)
- Este es el código de golf , por lo que gana la respuesta más corta.
- Las lagunas estándar están prohibidas.
AB23; AEI; BB; Z; ACE; giga; !@#$;-123; etc. Además, según las reglas de validación, podemos convertir 6164735732 => GIGATESTER, pero GIGATESTERresultará en un valor falso, debido a ST(regla de dos consonantes sucesivas). Según la configuración actual de su desafío, la parte principal del desafío es la validación, en lugar de la conversión. Estoy de acuerdo con eso, pero la validación debería definirse un poco mejor en ese caso.
GIGATESTERserGIGATESUTER?