概念
数字を覚えるのは難しい場合があります。単語を覚える方が簡単かもしれません。大きな数字を記憶するために、私はそれらをリーツピークのような方法で発音する方法を作りました。
ルール
各数字は、最初に対応する文字に置き換えられます。
0 => O
1 => I
2 => R
3 => E
4 => A
5 => S
6 => G
7 => T
8 => B
9 => P
置換後、発音を改善するために2つの追加処理が行われます。
2つの子音の間に、a
U
が追加されます。2つの母音の間に、a
N
が追加されます。
例/テストケース
512431 => SIRANENI
834677081 => BENAGUTUTOBI
3141592 => ENINANISUPUR
1234567890 => IRENASUGUTUBUPO
6164817 => GIGABIT
不可能なこと
- 同じ単語に混在する文字と数字
- 2つの連続した子音または2つの連続した母音
- 上記のリストにない文字
- その他のキャラクター
ルール
このコードゴルフの目標は、このコンセプトの双方向トランスレータを作成することです。
- プログラムは、文字から数字への変換であるか、数字から文字への変換であるかを最初に理解する必要があります。
- エントリが適切に形成されていることを確認する必要があります。
- すべてが正しければ、翻訳を表示します。
- それ以外の場合は、エラーメッセージを表示し、何も表示せず、偽の値を返すか、プログラムをクラッシュさせます。
詳細
- 入力番号/文字列は、任意の形式(stdin、argument、...)で入力できます。
- これはcode-golfなので、最短の回答が勝ちます。
- 標準的な抜け穴は禁止されています。
AB23
。無効なケースには、次のようないくつかのテストケースを追加する必要があります。AEI
; BB
; Z
; ACE
; giga
; !@#$
; -123
; などまた、検証ルールに基づいて、我々は変換することができ6164735732 => GIGATESTER
ますが、GIGATESTER
ための、偽の値になりますST
(二つの連続する子音のルール)。チャレンジの現在の設定方法では、チャレンジの主な部分は変換ではなく検証です。私はそれで問題ありませんが、その場合は検証をもう少し良く定義する必要があります。
GIGATESTER
ないGIGATESUTER
?