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'kay
tem 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'kay
podem 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'kay
adicionado . Além disso, nem sempre pode estar no mesmo local e cada local válido ondem'kay
pode ser adicionado deve ocorrer com igual probabilidade. Ou seja, você não pode adicionarm'kay
sempre 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!
, om
deve ser uppercased.O número de
m
nosm'kay
deve ser maneira uniforme escolhido entre 1 e 3. Ou seja,m'kay
,mm'kay
emmm'kay
são todas as escolhas possíveis, cada um com probabilidade 0,33 ... Se ele deve ser uppercased (veja acima regra), todosm
devem 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'kay
ou 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'kay
tem 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'kay
adicionado ". Por favor, esclareça que