Giriş:
Dizi
Çıktı:
Biz bir kare uzunluğunda bırakılır kadar 1) Öncelikle girdi-string sonunda kaldırma karakterini almak (yani 1, 4, 9, 16, 25, 36, vs.)
Yani abcdefghijklmnopqrstuvwxyz
(uzunluk 26) olur abcdefghijklmnopqrstuvwxy
( uzunluk 25).
2) Sonra bunu bir kerede bir satırda, soldan sağa koyarız:
abcde
fghij
klmno
pqrst
uvwxy
3) Bunu dört yönde de katlıyoruz (dış katlanmış 'blok' artık iç karakterleri kalmayıncaya kadar açılmaya devam ediyoruz):
m
qrs
l n
ghi
abcde
ihgf jihg
mn lk on lm
srqp tsrq
uvwxy
qrs
l n
ghi
m
Dikkat edilmesi gereken bazı şeyler, dışa doğru katlandığımızda, temelde bu şekilde yansırız (açıklama olarak eklenen sayılar, bu örneklerde 'dizinleri' temsil eder):
Sol tarafı katladığımızda:
123 to: 321 123
fghij ihgf j
Sağ tarafı katladığımızda:
123 to: 123 321
fghij f jihg
Yukarı doğru katlandığımızda:
3q
2l
1g
b to: b
1g 1
2l 2
3q 3
v v
Aşağı doğru katlandığımızda:
b b
1g 1
2l 2
3q 3
v to: v
3q
2l
1g
Zorluk kuralları:
- Girişin her zaman en az 1 karaktere sahip olacağını varsayabilirsiniz (bu da çıkış olacaktır).
- Çıktı formatı esnektir, böylece STDOUT veya STDERR'a yazdırabilirsiniz; dize dizisi / liste veya karakter 2D dizisi olarak dönme; yeni satırlı tek dize; vb.
- Giriş yalnızca alfasayısal karakterler içerecektir (
a-zA-Z0-9
) - ASCII-art çıktısının içindeki ve / veya çevresindeki boşlukları, nokta gibi doldurmak için alfasayısal olmayan bir karakter de kullanabilirsiniz
.
. - Sondaki boşluklar ve tek bir sondaki yeni satır isteğe bağlıdır.
- Dış katlanmış 'blok' açılacak daha fazla merkez kalmayana kadar açılmaya devam ediyoruz.
Genel kurallar:
- Bu kod golf , bayt en kısa cevap kazanır.
Kod golf dillerinin, kod yazmayan dillerle yanıt göndermenizi engellemesine izin vermeyin. 'Herhangi bir' programlama dili için mümkün olduğunca kısa bir cevap bulmaya çalışın. - Cevabınız için standart kurallar geçerlidir , bu nedenle STDIN / STDOUT, fonksiyonlar / yöntem uygun parametreler ve dönüş tipi, tam programlar ile kullanılabilir. Çağrınız.
- Varsayılan Loopholes yasaktır.
- Mümkünse, lütfen kodunuz için test içeren bir bağlantı ekleyin.
- Ayrıca, gerekirse bir açıklama ekleyin.
Test senaryoları:
Input: abcdefghijklmnopqrstuvwxy
Output:
m
qrs
l n
ghi
abcde
ihgf jihg
mn lk on lm
srqp tsrq
uvwxy
qrs
l n
ghi
m
Input: A
Ouput:
A
Input: ThisIsATest
Output:
I
Thi
Is sI
ATe
I
Input: HowAboutAVeryLongExampleWhichIsAlsoAnEvenSquareInsteadOfOddOneAndExceeds64Chars
Output:
An
ch
xamp
i I
o E
quar
steadO
S e
s v
h s
E l
VeryLo
HowAbout
oLyreVA noLyreV
xampl Eg el Examp
hci Is hW As hi Ihc
nAo Ev sl ev so EnA
quare Sn Ie Squar
Odaetsn fOdaets
OddOneAn
steadO
S e
s v
h s
E l
VeryLo
xamp
i I
o E
quar
An
ch
Input: Lenght7
Output:
Le
ng
Input: abc
Output:
a