バックグラウンド
これは、テキスト処理に関する3ホールのゴルフコースの最初の部分です。包括的な考え方は、入力テキストを取得し、3つの課題すべて(少量のグルーコードを使用)のソリューションにパイプすると、きれいに書式設定された段落を吐き出すというものです。この最初の課題では、タスクは指定されたハイフネーションパターンを使用してテキストをハイフネーションします。
入力
プログラムは、テキストとハイフネーションパターンのリストの2つの文字列入力を受け取る必要があります。最初の入力は、単に印刷可能なASCII文字とスペースの空でない文字列です。改行やチルダは含まれません~
。2番目の入力は、カンマで区切られた単語のリストであり、チルダで区切られた小文字のASCII文字の音節で構成されています。例はex~cel~lent,pro~gram~ming,abil~i~ties
です。
出力
プログラムは、次の方法で最初の入力を変更します。ハイフン付き小文字バージョンが2番目の入力で見つかった単語(アルファベットASCII文字の最大部分文字列)は、そのハイフン付きバージョンに置き換えられますが、大文字と小文字は保持されます。上記のリストの例では、テキストにwordが含まれている場合、; Excellent
に置き換えられEx~cel~lent
ます。しかし、Excellently
ものではない修正されます。出力は、この変更された文字列になります。
詳細なルールとスコアリング
入力について次のことを想定できます。
- 最初の入力には、チルダは含まれず、先頭、末尾、または繰り返されるスペースは含まれません。空ではありません。
- 2番目の入力には少なくとも1つの単語が含まれ、その各単語には少なくとも2つの音節が含まれます。各音節は空ではありません。
- 2番目の入力には、別の単語の音節として現れる単語は含まれません。
必要に応じて、2つの入力の順序を変更し、オプションで1つの末尾の改行を出力に追加できます。
関数または完全なプログラムを作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。
テストケース
これらは形式でリストされています1st input [newline] 2nd input [newline] output
。
Excellent programming abilities, you work excellently!
ex~cel~lent,pro~gram~ming,abil~i~ties
Ex~cel~lent pro~gram~ming abil~i~ties, you work excellently!
Superman (sometimes incorrectly spelled "Super-man") is super #&%@ing strong.
su~per,some~times,in~cor~rectly,spell~ing
Superman (some~times in~cor~rectly spelled "Su~per-man") is su~per #&%@ing strong.
IncONsISTent caPItalizATIon!
in~con~sis~tent,cap~i~tal~iza~tion
In~cON~sIS~Tent caP~I~tal~izA~TIon!
Such short words.
awk~ward
Such short words.
Digits123 are456cool789.
dig~its,dig~i~tal,are~cool
Dig~its123 are456cool789.
magic magic
ma~gic
ma~gic ma~gic
このチャレンジで起こり得るハイフネーションエラーは、このハイフネーションツールによるものです。
#programming!
はまだの第二の入力によって影響を受けることができるだろうかpro~gram~ming
)?数字もカウントされませんか(つまり、アルファベット文字のみが許可されます)?