Bugünkü zorluğunuz çok satırlı bir dizi almak ve sol üst köşeyi içeren dizede bulunan en büyük kareyi çıkarmaktır.
Kare bir dize şudur:
- Her satırda aynı sayıda karakter var
- Her satırdaki karakter sayısı, satır sayısına eşittir.
Aşağıdaki olası giriş dizesini göz önünde bulundurun:
abcde
fgh
asdf
foobar
a
Ondan alabileceğiniz en büyük kare, ilk karakteri içeren ( en üstteki köşedeki) şudur:
abc
fgh
asd
İkinci satır yeterince uzun olmadığından 4 kenar uzunluğunda bir kare olamaz. Şimdi bu potansiyel girişi düşünün:
a
bcd
edf
ghi
Buradaki en büyük meydan sadece a
. Dipte oluşan 3x3 kare ilk karakteri içermiyor ve sayılmıyor.
İşte birkaç test vakası:
a
a
abc
def
gh
ab
de
ab
cd
ab
cd
abcde
fghij
klm
no
abc
fgh
klm
a
b
a
Seçtiğiniz LF, CR veya CRLF ile sınırlandırılmış olarak girmeniz gerekebilir.
Yeni satır karakterleri, satır uzunluğunun bir parçası olarak kabul edilmez.
Girişte ek bir satır sayılmayan takip eden bir yeni satır olmanız veya olmamanız gerekebilir.
Giriş bir dize veya 1D karakter dizisidir; dizelerin listesi değildir.
Girişin boş olmadığını ve tüm satırların boş olmadığını ve boşluklar ve yeni satırlar (satır sınırlayıcı için) dahil ancak sekmeler dahil olmak üzere yalnızca yazdırılabilir ASCII içerdiğini varsayabilirsiniz.
Bu kod golf , en az bayt kazanıyor!
.split('\n')
gerekmediğinden, neden bazılarının ücretsiz olarak alacağını anlamıyorum.