主要なシステムがあるニーモニックそれらがより容易に記憶することができるように言葉に番号を変換するための装置。
単語の発音に基づいていますが、チャレンジのために物事を簡単にするために、単語のつづり方のみを考慮します。これは、いくつかの誤った変換があることを意味しますが、それは大丈夫です。
簡略化されたメジャーシステムを使用して数値を単語に変換するには:
- それぞれ
0
をs
またはに置き換えますz
。(一部は可能性がs
あり、一部は可能性がありますz
。以下も同様です。)- それぞれを交換
1
しt
たりd
またはth
。- それぞれ
2
をに置き換えますn
。- それぞれ
3
をに置き換えますm
。- それぞれ
4
をに置き換えますr
。- それぞれ
5
をに置き換えますl
。- それぞれを交換
6
しj
たりsh
またはch
。- それぞれ
7
をk
orc
またはg
orで置き換えますq
。- それぞれ
8
をf
またはに置き換えますv
。- それぞれ
9
をp
またはに置き換えますb
。- 可能であれば、文字を
aehiouwxy
任意の場所に追加して、実際の英語の単語を作成します。
唯一の例外はh
、s
またはの後に挿入できないことc
です。数値は、実際には数字0〜9の任意の文字列(小数、コンマ、または記号なし)にすることができます。
単語には小文字のa〜zのみを含めることができます。
例
番号32
はとして変換する必要があります?m?n?
。ここで?
、文字から作成された有限の文字列aehiouwxy
(必要に応じて、無料のモノイドからの文字列)を表します。これが本当の英語の単語の中に作ることができる多くの方法があります:mane
、moon
、yeoman
、など
番号05
は?s?l?
またはとして変換できます?z?l?
。いくつかの可能性があるeasily
、hassle
とhazel
。単語shawl
は許可されh
ませんs
。として誤って読み取られ65
ます。
チャレンジ
0から9の数字のストリングを取り込んで、簡略化されたメジャーシステムニーモニックを使用して変換できるすべての単語を見つけるプログラムまたは関数を作成します。
プログラムは、すべての「本当の」英語の単語を定義する単語リストテキストファイルにアクセスできます。このファイルの各行には1つの小文字のazワードがあり、オプションで末尾に改行があると想定できます。以下は、テストに使用できる実際の単語のリストです。この単語リストファイルはf
(またはそれより長い)呼び出され、便利なディレクトリにあると想定できます。
35バイトのペナルティ(スコアに35を加算)の場合、単語リストは既に文字列のリストとして変数にロードされていると想定できます。これは主にファイルを読み取れない言語用ですが、提出することでそれを利用できます。
プログラムは、入力数値を変換できる単語リスト内のすべての単語を出力する必要があります。これらは、1行に1つずつ(オプションの末尾の改行を使用して)stdout(または同様の)に出力する必要があります。または、関数の作成を選択した場合は、文字列のリストとして返すことができます。単語リストは必ずしもアルファベット順ではなく、出力もアルファベットである必要はありません。
可能な単語がない場合、出力(またはリスト)は空になります。空の文字列が入力されると、出力も空になります。
stdin、コマンドライン、または関数の文字列引数として入力を受け取ります。単語リストまたはそのファイル名は、入力の一部ではなく、数字列のみである必要があります。
単語リスト内の単一の単語のみが一致し、単語のシーケンスは一致しません。この単語noon
はおそらくの結果の1つです22
が、単語シーケンスno one
はそうではありません。
テストケース
これが単語リストであるとします:
stnmrljkfp
zthnmrlshqfb
asatanamaralajakafapa
aizxydwwwnhimouooraleshhhcavabe
zdnmrlshcvb
zdnmrlshchvb
sthnmrlchgvb
shthnmrlchgvb
bob
pop
bop
bopy
boppy
入力0123456789
はzdnmrlshchvb
and を除くすべての長い単語を与える必要がありshthnmrlchgvb
ます:
stnmrljkfp
zthnmrlshqfb
asatanamaralajakafapa
aizxydwwwnhimouooraleshhhcavabe
zdnmrlshcvb
sthnmrlchgvb
入力99
は次のようになります。
bob
pop
bop
bopy
(出力語は任意の順序にできます。)
得点
バイト単位の最短提出が勝ちです。Tiebreakerは、最初に投稿されたサブミッションに進みます。
ニフティ関連サイト:numzi.com。