Twoim dzisiejszym wyzwaniem jest pobranie ciągu wielowierszowego i wyprowadzenie największego kwadratu zawartego w ciągu, który zawiera lewy górny róg.
Ciąg kwadratowy to taki, w którym:
- Każda linia ma taką samą liczbę znaków
- Liczba znaków w każdej linii jest równa liczbie linii.
Rozważ następujący możliwy ciąg wejściowy:
abcde
fgh
asdf
foobar
Największy kwadrat, jaki możesz z niego wziąć, zawierający pierwszą postać ( aw lewym górnym rogu) to:
abc
fgh
asd
Nie może być kwadratu o boku 4, ponieważ druga linia nie jest wystarczająco długa. Teraz rozważ ten potencjalny wkład:
a
bcd
edf
ghi
Największy plac tutaj jest sprawiedliwy a. Utworzony na dole kwadrat 3x3 nie zawiera pierwszego znaku i się nie liczy.
Oto kilka innych przypadków testowych:
a
a
abc
def
gh
ab
de
ab
cd
ab
cd
abcde
fghij
klm
no
abc
fgh
klm
a
b
a
Możesz wymagać ograniczenia danych wejściowych przez wybór LF, CR lub CRLF.
Znaki nowego wiersza nie są uważane za część długości linii.
Możesz wymagać, aby na wejściu pojawiał się znak nowej linii, ale nie jest to dodatkowy wiersz.
Dane wejściowe to tablica znaków lub 1D; nie jest to lista ciągów.
Możesz założyć, że dane wejściowe są niepuste, a wszystkie wiersze są niepuste i że zawiera tylko drukowalny kod ASCII, w tym spacje i znaki nowej linii (dla separatora linii), ale nie tabulatory.
To jest golf golfowy , wygrywa najmniej bajtów!
.split('\n')więc nie rozumiem, dlaczego niektórzy powinni go otrzymać za darmo.