La tua sfida oggi è prendere una stringa multilinea e produrre il quadrato più grande contenuto nella stringa che include l'angolo in alto a sinistra.
Una stringa quadrata è quella in cui:
- Ogni riga ha lo stesso numero di caratteri
- Il numero di caratteri su ogni riga è uguale al numero di righe.
Considera la seguente stringa di input possibile:
abcde
fgh
asdf
foobar
Il quadrato più grande che puoi prendere da esso che include il primo carattere (il anell'angolo in alto a sinistra) è questo:
abc
fgh
asd
Non può esserci un quadrato di lunghezza laterale 4, perché la seconda linea non è abbastanza lunga. Ora considera questo potenziale input:
a
bcd
edf
ghi
La piazza più grande qui è giusta a. Il quadrato 3x3 formato nella parte inferiore non contiene il primo carattere e non conta.
Ecco alcuni altri casi di test:
a
a
abc
def
gh
ab
de
ab
cd
ab
cd
abcde
fghij
klm
no
abc
fgh
klm
a
b
a
Potrebbe essere necessario delimitare l'input a scelta tra LF, CR o CRLF.
I caratteri di nuova riga non sono considerati parte della lunghezza della linea.
Potrebbe essere necessario che ci sia o meno una nuova riga finale nell'input, che non conta come una riga aggiuntiva.
L'input è una stringa o array di caratteri 1D; non è un elenco di stringhe.
È possibile supporre che l'input sia non vuoto e tutte le righe non siano vuote e che contenga solo ASCII stampabile, inclusi spazi e nuove righe (per il delimitatore di riga) ma non schede.
Questo è code-golf , vince meno byte!
.split('\n')quindi non vedo perché alcuni dovrebbero ottenerlo gratuitamente.