Pan Mackey jest postacią z South Park znaną z dodawania „m'kay” we wszystkim, co mówi.
Napisz program lub funkcję, która przekształci ciąg tekstu w coś, co powiedziałby pan Mackey.
Dobra lokalizacja
m'kay
ma losowy 50% szans na dodawanych po interpunkcyjne,
,.
,?
i!
. W takim przypadku po nim będzie dokładnie ten sam znak interpunkcyjny, który go poprzedza, a po nim spacja.Na przykład w zdaniu można dodać
Test, test.
dwa miejscam'kay
: po przecinku i po okresie, z 50% szansą na każde miejsce. Możliwe byłyby takie wynikiTest, m'kay, test
. lubTest, test. M'kay.
lubTest, m'kay, test. M'kay.
.Zawsze musi być co najmniej jeden
m'kay
dodany . Co więcej, nie zawsze może znajdować się w tym samym miejscu i każde prawidłowe miejsce, w którymm'kay
można je dodać, musi wystąpić z jednakowym prawdopodobieństwem. Oznacza to, że nie możesz dodawaćm'kay
zawsze na końcu łańcucha, jeśli z powodu losowości nigdy go nie dodałeśm'kay
. Jeśli jest tylko jedenm'kay
, musi mieć takie samo prawdopodobieństwo pojawienia się na każdej ważnej pozycji, nawet jeśli jego obecność jest wymuszona.Jeśli
m'kay
jest po?
,.
lub!
,m
muszą być pisane wielkimi literami.Liczba
m
INm'kay
musi być uniformely podniósł między 1 i 3. Oznacza to, żem'kay
,mm'kay
immm'kay
są wszystkie możliwe opcje, każdy z prawdopodobieństwem 0,33 ... Jeśli musi być duże litery (patrz wyżej reguły), wszystkom
musi być duże litery.
Wejścia wyjścia
Dane wejściowe to ciągi znaków ASCII zawierające znaki od ASCII Dec 32 (Spacja) do ASCII Dec 126 (tylda
~
). Na wejściu nie ma podziałów wierszy. Możesz założyć, że każde wejście będzie zawierało co najmniej jeden z nich, . ? !
.Możesz założyć, że
m'kay
na wejściu nie ma żadnego z jego wariantów.Dane wejściowe mogą być pobierane z STDIN, argumentów funkcji, wiersza poleceń lub czegoś podobnego.
Dane wyjściowe mogą być przesyłane za pośrednictwem STDOUT, funkcji return lub czegoś podobnego.
Przypadki testowe
- Wejście:
Test.
Możliwe wyjście: Test. M'kay.
- Wejście:
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.
Możliwe wyjście: 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.
- Wejście:
Drugs are bad, so, if you do drugs, you're bad, because drugs are bad. They can hurt your body, cause drugs are bad.
Możliwe wyjście: 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.
- Wejście:
Do you understand? Really? Good!
Możliwe wyjście: Do you understand? MM'kay? Really? Good! MMM'kay!
Punktacja
To jest code-golf , więc wygrywa najkrótszy kod w bajtach, prawda?
M'kay
ma losowe 50% szansy na dodanie po interpunkcji ,,.,? i! ” wydaje się być niezgodne z „ Zawsze musi być co najmniej jeden m'kay
dodany ”. Wyjaśnij, że