Ваша задача сегодня состоит в том, чтобы взять многострочную строку и вывести самый большой квадрат, содержащийся внутри строки, который включает в себя верхний левый угол.
Квадратная строка - это та, где:
- Каждая строка имеет одинаковое количество символов
- Количество символов в каждой строке равно количеству строк.
Рассмотрим следующую возможную строку ввода:
abcde
fgh
asdf
foobar
Самый большой квадрат, который вы можете взять из него, который включает в себя первый символ ( a
в верхнем углу):
abc
fgh
asd
Не может быть квадрата с длиной стороны 4, потому что вторая строка не достаточно длинна. Теперь рассмотрим этот потенциальный вклад:
a
bcd
edf
ghi
Здесь самая большая площадь a
. Квадрат 3х3, сформированный внизу, не содержит самого первого символа и не считается.
Вот еще несколько тестов:
a
a
abc
def
gh
ab
de
ab
cd
ab
cd
abcde
fghij
klm
no
abc
fgh
klm
a
b
a
Вы можете потребовать, чтобы ввод был ограничен вашим выбором LF, CR или CRLF.
Символы новой строки не считаются частью длины строки.
Вы можете потребовать, чтобы в вводе была или не была завершающая новая строка, которая не считается дополнительной строкой.
Ввод - это строка или одномерный массив символов; это не список строк.
Вы можете предположить, что входные данные не пустые, и все строки не пустые, и что он содержит только печатный ASCII, включая пробелы и символы новой строки (для разделителя строк), но не табуляции.
Это код-гольф , побеждает меньше байтов!
.split('\n')
поэтому я не понимаю, почему некоторые должны получить его бесплатно.