El Sr. Mackey es un personaje de South Park conocido por agregar "m'kay" en todo lo que dice.
Escriba un programa o función que transforme una cadena de texto en algo que diría el Sr. Mackey.
Colocación de M'kay
m'kay
tiene un 50% de probabilidad aleatoria de ser añadido después de que los signos de puntuación,
,.
,?
y!
. Si ese es el caso, irá seguido del mismo signo de puntuación que lo precede y precedido por un espacio.Por ejemplo, en la oración
Test, test.
, hay dos lugares dondem'kay
se pueden agregar: después de la coma y después del punto, con un 50% de probabilidad en cada lugar. Posibles resultados seríanTest, m'kay, test
. oTest, test. M'kay.
oTest, m'kay, test. M'kay.
.Siempre debe haber al menos uno
m'kay
agregado . Además, no siempre puede estar en el mismo lugar y cada lugar válido donde sem'kay
pueda agregar debe ocurrir con la misma probabilidad. Es decir, no puede agregarm'kay
siempre al final de la cadena si, debido a la aleatoriedad, nunca agregó ningunom'kay
. Si solo hay unom'kay
, debe tener la misma probabilidad de aparecer en cada posición válida, aunque su presencia se haga cumplir.Si
m'kay
es después?
,.
o!
, elm
debe uppercased.El número de
m
enm'kay
debe ser recogido de manera uniforme entre 1 y 3. Es decir,m'kay
,mm'kay
ymmm'kay
son todas las opciones posibles, cada uno con una probabilidad de 0.33 ... Si hay que uppercased (véase más arriba regla), todosm
deben ser uppercased.
Salidas, entradas
Las entradas son cadenas ASCII que contienen caracteres desde ASCII Dec 32 (Espacio) hasta ASCII Dec 126 (Tilde
~
). No hay saltos de línea en la entrada. Puede suponer que cualquier entrada contendrá al menos uno de, . ? !
.Puede suponer que no hay
m'kay
ninguna de sus variantes en la entrada.Las entradas pueden tomarse de STDIN, argumentos de función, línea de comando o cualquier cosa similar.
La salida puede ser a través de STDOUT, un retorno de función o algo similar.
Casos de prueba
- Entrada:
Test.
Salida posible: 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.
Salida posible: 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.
Salida posible: 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!
Salida posible: Do you understand? MM'kay? Really? Good! MMM'kay!
Puntuación
Este es el código de golf , por lo que gana el código más corto en bytes, ¿vale?
M'kay
tiene una probabilidad aleatoria del 50% de ser agregado después de los signos de puntuación".,? y! "parece ser incompatible con" Siempre debe haber al menos uno m'kay
agregado ". Por favor aclare eso