マッキー氏は、彼が言うことすべてに「m'kay」を追加することで有名なサウスパークのキャラクターです。
一連のテキストをMackey氏が言うようなものに変換するプログラムまたは関数を作成します。
M'kay配置
m'kay
持っているランダムな50%の確率で追加されたの句読点の後に,
、.
、?
と!
。その場合、その前にスペースが続く正確に同じ句読点が続きます。たとえば、文
Test, test.
でm'kay
は、追加できる場所が2つあります。カンマの後とピリオドの後に、それぞれの場所で50%のチャンスがあります。可能な結果はになりますTest, m'kay, test
。またはTest, test. M'kay.
またはTest, m'kay, test. M'kay.
。常に少なくとも1つ
m'kay
追加する必要があります。さらに、常に同じ場所にあるとは限らず、m'kay
追加できる有効な各場所は同じ確率で発生する必要があります。つまりm'kay
、ランダム性のためにを追加したことがない場合、文字列の最後に常に追加することはできませんm'kay
。が1つしかない場合m'kay
、その存在は強制されますが、各有効な位置に現れる同じ確率を持たなければなりません。場合
m'kay
の後で?
、.
または!
、m
大文字にする必要があります。m
in の数は、m'kay
1から3の間で均一に選択する必要があります。つまりm'kay
、mm'kay
およびmmm'kay
はすべて可能性のある選択肢であり、それぞれ確率0.33 ...m
があります。
入力、出力
入力は、ASCII Dec 32(スペース)からASCII Dec 126(ティルデ
~
)までの文字を含むASCII文字列です。入力に改行はありません。入力には少なくとも1つが含まれると想定できます, . ? !
。m'kay
入力にそのバリアントがないか、またはそのバリアントがあるとみなすことができます。入力は、STDIN、関数の引数、コマンドライン、または同様のものから取得できます。
出力は、STDOUT、関数リターン、または同様のものを介して行われます。
テストケース
- 入力:
Test.
可能な出力: Test. M'kay.
- 入力:
Programming Puzzles & Code Golf Stack Exchange is a question and answer site for programming puzzle enthusiasts and code golfers. It's 100% free, no registration required.
可能な出力: Programming Puzzles & Code Golf Stack Exchange is a question and answer site for programming puzzle enthusiasts and code golfers. MMM'kay. It's 100% free, mm'kay, no registration required.
- 入力:
Drugs are bad, so, if you do drugs, you're bad, because drugs are bad. They can hurt your body, cause drugs are bad.
可能な出力: Drugs are bad, m'kay, so, if you do drugs, you're bad, m'kay, because drugs are bad. They can hurt your body, m'kay, cause drugs are bad. M'kay.
- 入力:
Do you understand? Really? Good!
可能な出力: Do you understand? MM'kay? Really? Good! MMM'kay!
得点
これはcode-golfなので、バイト単位の最短コードが勝ちます、大丈夫ですか?
M'kay
句読点の後に追加されているのランダムな50%のチャンスがある,,。、?と!」「と互換性がないと思わ常に少なくとも一つがなければならないm'kay
追加」。それを明確にしてください