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
issippi
ilk oluşumunun altında, dikey olarak kalan dizenin ( ) benzersiz karakterlerinden oluşan en uzun öneki çıktılayın :Mis i s
Yatay 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ı ABCcde
sadece olurduABCcde
AAAAAAAA
b
gerektiğinden, yalnızca kalan dizede , yani "dallanmadan" sonra yinelenenleri düşünmelisiniz . İkinciye ulaştığınızda, kalan dizeninc
benzersiz 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.ebffg
ebf