Cette question est similaire à Biggest Square dans une grille .
Défi
Étant donné une matrice de 1
et 0
dans un format de chaîne "xxxx,xxxxx,xxxx,xx.."
ou un format de tableau ["xxxx","xxxx","xxxx",...]
, vous allez créer une fonction qui détermine la zone de la plus grande sous-matrice carrée qui contient tout 1
.
Une sous-matrice carrée est une largeur et une hauteur égales, et votre fonction doit renvoyer la zone de la plus grande sous-matrice qui contient uniquement 1
.
Par exemple:
Étant donné "10100,10111,11111,10010"
, cela ressemble à la matrice suivante:
1 0 1 0 0
1 0 1 1 1
1 1 1 1 1
1 0 0 1 0
Vous pouvez voir les caractères gras 1
créer la plus grande sous-matrice carrée de taille 2x2, donc votre programme doit retourner la zone qui est 4.
Règles
- La sous-matrice doit avoir une largeur et une hauteur égales
- La sous-matrice doit contenir uniquement des valeurs
1
- Votre fonction doit renvoyer la zone de la plus grande sous-matrice
- Si aucune sous-matrice n'est trouvée, retournez
1
- Vous pouvez calculer l'aire de la sous-matrice en comptant le nombre de
1
dans la sous-matrice
Cas de test
Entrée: "10100,10111,11111,10010"
Sortie: 4
Entrée: "0111,1111,1111,1111"
Sortie: 9
Sortie d' entrée "0111,1101,0111"
: 1
C'est le code-golf , donc la réponse la plus courte en octets gagne.