Це питання схоже на Найбільший квадрат у сітці .
Виклик
Давши матрицю 1
та 0
у рядковому форматі "xxxx,xxxxx,xxxx,xx.."
або у форматі масиву ["xxxx","xxxx","xxxx",...]
, ви створите функцію, яка визначає область найбільшої квадратної підматриці, яка містить усі 1
.
Квадратна підматриця - однакова ширина і висота, і ваша функція повинна повертати область найбільшої підматриці, яка містить тільки 1
.
Наприклад:
Враховуючи "10100,10111,11111,10010"
це, виглядає наступна матриця:
1 0 1 0 0
1 0 1 1 1
1 1 1 1 1
1 0 0 1 0
Ви можете побачити жирним шрифтом 1
створити найбільшу квадратну підматрицю розміром 2x2, тому ваша програма повинна повернути область, яка дорівнює 4.
Правила
- Підматриця повинна бути однакової ширини та висоти
- Підматриця повинна містити лише значення
1
- Ваша функція повинна повертати область найбільшої підматриці
- Якщо підматриця не знайдена, поверніться
1
- Ви можете обчислити площу підматриці, підрахувавши число
1
в підматриці
Тестові справи
Вхід: "10100,10111,11111,10010"
Вихід: 4
Вхід: "0111,1111,1111,1111"
Вихід: 9
Вхідний "0111,1101,0111"
вихід: 1
Це є код-гольф, тому найкоротша відповідь у байтах виграє.