
麦克基先生是南方公园的一个人物,以他所说的一切都加上“ m'kay”而闻名。
编写一个程序或函数,将一串文本转换成Mackey先生会说的话。
麦凯安置
m'kay有一个随机的50%的几率被添加的标点符号后,,.,?和!。如果是这种情况,它将紧跟在其前面并在空格之前的完全相同的标点符号。例如,在句子中
Test, test.,m'kay可以添加两个位置:逗号之后和句点之后,每个位置都有50%的机会。可能的结果是Test, m'kay, test。或Test, test. M'kay.或Test, m'kay, test. M'kay.。必须始终至少
m'kay添加一个。而且,它不能总是在同一位置,m'kay可以添加的每个有效位置必须以相同的概率出现。也就是说,m'kay如果由于随机性而从未添加any ,则不能总是在字符串末尾添加m'kay。如果只有一个m'kay,即使强制存在,它也必须具有相同的出现在每个有效位置的概率。如果
m'kay是后?,.或者!,在m必须大写。min 的数目m'kay必须在1到3之间统一选择。也就是说m'kay,mm'kay和mmm'kay都是所有可能的选择,每个选择的概率为0.33 ...如果必须将其大写(请参见上述规则),则m必须将其全部大写。
输入,输出
输入是ASCII字符串,其中包含从ASCII Dec 32(空格)到ASCII Dec 126(波浪号)的字符
~。输入中没有换行符。您可能假设任何输入将至少包含之一, . ? !。您可以假设
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添加一个 ” 不兼容。请澄清一下