Concept
Se souvenir des chiffres peut être difficile. Se souvenir d'un mot peut être plus facile. Afin de mémoriser de grands nombres, j'ai créé un moyen de les prononcer d'une manière semblable à un leetspeak.
Règles
Chaque chiffre est d'abord remplacé par sa lettre correspondante:
0 => O
1 => I
2 => R
3 => E
4 => A
5 => S
6 => G
7 => T
8 => B
9 => P
Après le remplacement, deux choses supplémentaires sont effectuées pour améliorer la prononciation:
Entre deux consonnes, un
U
est ajouté.Entre deux voyelles, un
N
est ajouté.
Exemples / cas de test
512431 => SIRANENI
834677081 => BENAGUTUTOBI
3141592 => ENINANISUPUR
1234567890 => IRENASUGUTUBUPO
6164817 => GIGABIT
Ce qui est impossible
- Lettres et chiffres mélangés dans le même mot
- Deux consonnes successives ou deux voyelles successives
- Lettres qui ne figurent pas dans la liste ci-dessus
- Autres personnages
Règles
Le but de ce code-golf est de créer un traducteur bidirectionnel pour ce concept.
- Votre programme doit d'abord comprendre par lui-même s'il s'agit d'une traduction de lettre à numéro ou de numéro à lettre.
- Il doit vérifier que l'entrée est correctement formée.
- Si tout est correct, affichez la traduction.
- Sinon, afficher un message d'erreur, rien, retourner une valeur de falsey ou planter le programme.
Détails
- Le numéro / la chaîne d'entrée peut être entré dans le format de votre choix (stdin, argument, ...)
- C'est le code-golf , donc la réponse la plus courte l'emporte.
- Les failles standard sont interdites.
AB23
; AEI
; BB
; Z
; ACE
; giga
; !@#$
; -123
; etc. En outre, sur la base des règles de validation, nous pouvons convertir 6164735732 => GIGATESTER
, mais GIGATESTER
entraînera une fausse valeur, à cause de ST
(règle des deux consonnes successives). La façon dont votre défi est actuellement configuré, la partie principale du défi est la validation, au lieu de la conversion. Je suis d'accord avec ça, mais la validation devrait être définie un peu mieux dans ce cas.
GIGATESTER
êtreGIGATESUTER
?