不可解なキッカー
テキストを暗号化する一般的だが安全ではない方法は、アルファベットの文字を入れ替えることです。言い換えると、アルファベットの各文字は、テキスト内で一貫して他の文字に置き換えられます。暗号化が可逆的であることを保証するために、2つの文字が同じ文字に置き換えられることはありません。あなたの仕事は、各行が異なる置換のセットを使用し、解読されたテキストのすべての単語が既知の単語の辞書からであると仮定して、テキストのいくつかのエンコードされた行を解読することです。
入力
入力は、アルファベット順の小文字の単語で構成されます。これらの単語は、復号化されたテキストに表示される単語の辞書を構成します。辞書に続いて、入力のいくつかの行があります。各行は上記のように暗号化されます。
辞書にあるのは1,000語以下です。16文字を超える単語はありません。暗号化された行には小文字とスペースのみが含まれ、長さは80文字を超えません。
出力
各行を復号化し、標準出力に出力します。複数の解決策がある場合は、いずれでも解決できます。解決策がない場合は、アルファベットのすべての文字をアスタリスクに置き換えます。
サンプル入力
and dick jane puff spot yertle
bjvg xsb hxsn xsb qymm xsb rqat xsb pnetfn
xxxx yyy zzzz www yyyy aaa bbbb ccc dddddd
サンプル出力
dick and jane and puff and spot and yertle
**** *** **** *** **** *** **** *** ******
これが解決策です。私は最短バイト/競争力のあるプログラマーのためのレースで走っている馬ではないことに注意してください。私はパズルが好きです!
(ソース)