Bir dize verildiğinde, göreviniz onu aşağıda açıklandığı gibi zikzak benzeri bir yapıya daraltmaktır.
Zikzak içine katlanır
Dizeyi "Mississippi"örnek olarak alacağız :
İlk olarak, yalnızca benzersiz karakterlerden oluşan en uzun öneki çıkarın:
Misİlk yinelenen C karakterine ulaştığınızda , yoksayın ve C'nin
issippiilk oluşumunun altında, dikey olarak kalan dizenin ( ) benzersiz karakterlerinden oluşan en uzun öneki çıktılayın :Mis i sYatay ve dikey devam arasında geçiş yaparak işlemi tekrarlayın. Ancak şimdi, bu durumda olduğu gibi mutlaka sonuncusu olmayan yinelenen karakterin son oluşumundan yatay olarak çıktı almaya devam etmeye dikkat edin (1. adımda):
Mis i sip ----- Mis i sip i
kurallar
- Dize yalnızca yazdırılabilir ASCII karakterlerini içerecektir, ancak herhangi bir boşluk içermeyecektir.
- Herhangi bir programlama dilinde rekabet edebilir ve herhangi bir standart yöntemle ve herhangi bir makul formatta 1 girdi alabilir ve çıktı sağlayabilirsiniz , bu boşlukların varsayılan olarak yasak olduğunu unutmayın . Bu kod golf , bu nedenle her dil için en kısa gönderme (bayt cinsinden) kazanır.
- 1 Giriş: Dize / Karakter listesi / dilinizin dizeleri temsil etmek için kullandığı her şey. Çıktı: Çok satırlı dize, satırları temsil eden dize listesi veya karakter / uzunluk-1 dize listesi listesi, ancak mümkünse cevabınıza lütfen kodunuzun güzel basılı bir sürümünü ekleyin.
- Ek boşluklarla ilgili olarak, çıktı şunları içerebilir:
- Öncü / sondaki yeni satırlar
- Her satırdaki / sondaki boşluklar
- Bir tutarlı , her satırda gelen boşlukların sayısı
- Sen olabilir, yatay çıkışa başlamalıdır değil dikey olarak başlar.
Test senaryoları
girişler:
"Mükemmel" "Mississippi" "Tuhaflıklar" "Trivialities" "Cthulhu" "PPCG" "POpOpOpOpOpOp" "ABCCCE" "ABCCCECCEEEEC" "Abcdcebffg" "Abca" "AAAAAAAA"
Karşılık gelen çıktılar:
perf c t
Mis
ben
Yudumlamak
ben
Od ies t
Triv bir l ies t
Cthul u
P C G,
po OPO pop p
ABC C E
ABC CCE E EC
abcd e b fg
ABC
bir AA bir
ABCcde
"A" ≠ "a". Çıktı ABCcdesadece olurduABCcde
AAAAAAAA
bgerektiğinden, yalnızca kalan dizede , yani "dallanmadan" sonra yinelenenleri düşünmelisiniz . İkinciye ulaştığınızda, kalan dizenincbenzersiz karakterlerinin en uzun önekini çıkarırsınız , bu da (böylece dikey olarak çıkış yapar ve bundan sonra yatay olarak devam eder), böylece dizenin, yön değiştirilmeden önce zaten çıktı. Hala size açık gelmiyorsa, bu test senaryosuyla adım adım bir örnek daha vereceğim.ebffgebf