Meydan okuma
Dizenin sonuncusu hariç her karakteri için aşağıdakileri yapın:
Geçerli karakteri çıktılar.
Ardından, aşağıdaki listeden 1 - 5 (dahil) arasında rasgele sayıda çıktı rastgele verilir:
- Mevcut karakter
- Dizenin sonraki karakteri
- Şu anda bulunduğunuz karakterin anahtar kutusu sürümü
- Dizenin bir sonraki karakterinin anahtar kutusu sürümü.
Test Durumları
String
-> SSSTSStrTrIiinIIngn
, . , . , . Hello world!
-> ,,, .. , ,, .... , , .. .. . HHH HHEeelLlLllooO wwOworOOrrrRllDd!!D
Programming Puzzles and Code Golf
-> PrPPrRrOooooogggRgGraAraaaMMMmmmimMIiininGGgG PPPPuZzZZzZzzZzllLLEEeEsEsssS a aANnNddD C COCoooOOdeDe E GGGoOllFFf
notlar
- Bir karakterin anahtar kutusu sürümünü yalnızca karakter alfabenin bir parçasıysa (AZ ve az) uygulamanız gerekir.
- Rastgele işlevinizin aynı olması gerekmez, ancak yine de verilen listedeki herhangi bir öğeyi döndürme şansına sahip olması gerekir.
- Herhangi bir standart G / Ç biçimini kullanmanıza izin verilir.
- Giriş uzunluğunun ikiden büyük veya ona eşit olduğunu varsayabilirsiniz.
- Girişin yalnızca ASCII karakterlerden oluştuğunu varsayabilirsiniz.
- Başlık bir test senaryosu değildir (geçerli bir test senaryosu olması istenmez).
- Şalter, büyük harf ise karakteri küçük harfe, küçük harf ise büyük harfe çevirmek anlamına gelir.
String
ürettiğini öğreninSSSTSStrTrIiinIIngn
[S]SSTSS [t]rT, [r]I, [i]inII, [n]gn
bloklar arasındaki karakterler ilk kurşun noktalarıdır (" Mevcut karakteri çıkar ") ve diğer karakterler bunun için dört seçenekten rastgele 1-5 kattadır karakter. Ancak katılıyorum, bazı daha açık açıklamalar uygun olacaktır. Test durumundan ayrı olarak 1-5 kez rastgele bir seçim seçmemiz gerektiği belli değildi. Rastgele bir seçim seçmek yerine 1-5 kez tekrarlandı (Gaia cevabının şu anda yaptığı gibi).