Su desafío hoy es tomar una cadena multilínea y generar el cuadrado más grande contenido dentro de la cadena que incluye la esquina superior izquierda.
Una cadena cuadrada es aquella donde:
- Cada línea tiene el mismo número de caracteres.
- El número de caracteres en cada línea es igual al número de líneas.
Considere la siguiente cadena de entrada posible:
abcde
fgh
asdf
foobar
El cuadrado más grande que puede tomar de él que incluye el primer carácter ( aen la esquina superior izquierda) es este:
abc
fgh
asd
No puede haber un cuadrado de longitud lateral 4, porque la segunda línea no es lo suficientemente larga. Ahora considere esta entrada potencial:
a
bcd
edf
ghi
La plaza más grande aquí es justa a. El cuadrado de 3x3 formado en la parte inferior no contiene el primer carácter, y no cuenta.
Aquí hay algunos casos de prueba más:
a
a
abc
def
gh
ab
de
ab
cd
ab
cd
abcde
fghij
klm
no
abc
fgh
klm
a
b
a
Puede requerir que la entrada esté delimitada por su elección de LF, CR o CRLF.
Los caracteres de nueva línea no se consideran parte de la longitud de la línea.
Puede requerir que haya o no una nueva línea final en la entrada, que no cuenta como una línea adicional.
La entrada es una cadena o matriz de caracteres 1D; No es una lista de cadenas.
Puede suponer que la entrada no está vacía y que todas las líneas no están vacías, y que solo contiene ASCII imprimible, incluidos espacios y líneas nuevas (para el delimitador de línea) pero no pestañas.
Este es el código de golf , ¡la menor cantidad de bytes gana!
.split('\n')así que no veo por qué algunas deberían obtenerla de forma gratuita.