
Mackey é um personagem de South Park conhecido por adicionar "m'kay" em tudo o que diz.
Escreva um programa ou função que transforme uma sequência de texto em algo que o Sr. Mackey diria.
Colocação M'kay
m'kaytem uma possibilidade aleatória de 50% de ser adicionado após as pontuações,,.,?e!. Se for esse o caso, será seguido exatamente pelo mesmo sinal de pontuação que o antecede e é precedido por um espaço.Por exemplo, na sentença
Test, test., há dois locais quem'kaypodem ser adicionados: após a vírgula e após o período, com 50% de chance em cada local. Possíveis resultados seriamTest, m'kay, test. ouTest, test. M'kay.ouTest, m'kay, test. M'kay..Sempre deve haver pelo menos um
m'kayadicionado . Além disso, nem sempre pode estar no mesmo local e cada local válido ondem'kaypode ser adicionado deve ocorrer com igual probabilidade. Ou seja, você não pode adicionarm'kaysempre no final da string se, por causa da aleatoriedade, você nunca adicionou nenhumam'kay. Se houver apenas umm'kay, ele deve ter a mesma probabilidade de aparecer em cada posição válida, mesmo que sua presença seja imposta.Se
m'kayé depois?,.ou!, omdeve ser uppercased.O número de
mnosm'kaydeve ser maneira uniforme escolhido entre 1 e 3. Ou seja,m'kay,mm'kayemmm'kaysão todas as escolhas possíveis, cada um com probabilidade 0,33 ... Se ele deve ser uppercased (veja acima regra), todosmdevem ser uppercased.
Entradas saídas
As entradas são sequências ASCII que contêm caracteres de ASCII Dec 32 (Space) a ASCII Dec 126 (Tilde
~). Não há quebras de linha na entrada. Você pode assumir que qualquer entrada conterá pelo menos uma das, . ? !.Você pode assumir que não há nenhuma
m'kayou nenhuma de suas variantes na entrada.As entradas podem ser obtidas de STDIN, argumentos de função, linha de comando ou qualquer coisa semelhante.
A saída pode ser via STDOUT, um retorno de função ou algo semelhante.
Casos de teste
- Entrada:
Test.
Saída possível: Test. M'kay.
- Entrada:
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.
Saída possível: 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.
- Entrada:
Drugs are bad, so, if you do drugs, you're bad, because drugs are bad. They can hurt your body, cause drugs are bad.
Saída possível: 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.
- Entrada:
Do you understand? Really? Good!
Saída possível: Do you understand? MM'kay? Really? Good! MMM'kay!
Pontuação
Isso é código-golfe , então o código mais curto em bytes vence, certo?
M'kaytem 50% de chance aleatória de ser adicionado após as pontuações ,,.,? e! " parece ser incompatível com " Sempre deve haver pelo menos um m'kayadicionado ". Por favor, esclareça que