Wyzwanie
Dla każdego znaku ciągu oprócz ostatniego, wykonaj następujące czynności:
Wyjście bieżącego znaku.
Następnie losowo wyprowadza z poniższej listy losową liczbę razy od 1 do 5 (włącznie):
- Obecna postać
- Następny znak ciągu
- Wersja postaci, w której aktualnie jesteś
- Wersja rozdzielająca następnego znaku ciągu.
Przypadki testowe
String
-> SSSTSStrTrIiinIIngn
, . , . , . Hello world!
-> ,,, .. , ,, .... , , .. .. . HHH HHEeelLlLllooO wwOworOOrrrRllDd!!D
Programming Puzzles and Code Golf
-> PrPPrRrOooooogggRgGraAraaaMMMmmmimMIiininGGgG PPPPuZzZZzZzzZzllLLEEeEsEsssS a aANnNddD C COCoooOOdeDe E GGGoOllFFf
Uwagi
- Musisz zastosować wersję przełącznika znaku tylko wtedy, gdy znak jest częścią alfabetu (AZ i az).
- Twoja losowa funkcja nie musi być jednolita, ale nadal musi mieć szansę na zwrócenie dowolnego elementu z podanej listy.
- Możesz używać dowolnego standardowego formatu we / wy.
- Możesz założyć, że długość danych wejściowych jest większa lub równa dwa.
- Możesz założyć, że dane wejściowe składają się tylko ze znaków ASCII.
- Tytuł nie jest przypadkiem testowym (jest niezamierzony, jeśli jest to prawidłowy przypadek testowy).
- „Switchcase” oznacza, że zamieniasz znak na małe litery, jeśli jest to wielkie litery, i zmienisz go na wielkie litery, jeśli jest małe.
String
produkujeSSSTSStrTrIiinIIngn
[S]SSTSS [t]rT, [r]I, [i]inII, [n]gn
gdzie postacie między blokami są pierwszymi punktorami („ Wyjście bieżącego znaku ”), a pozostałe postacie są 1-5 razy losowo jedną z czterech opcji do wyboru postać. Ale zgadzam się, że bardziej precyzyjne wyjaśnienia byłyby odpowiednie. Poza przypadkiem testowym nie było szczególnie jasne, że musimy wybrać losowy wybór 1-5 razy. Zamiast wybierać losowy wybór powtarzany 1-5 razy (jak obecnie robi odpowiedź Gai).