Ihre heutige Herausforderung besteht darin, eine mehrzeilige Zeichenfolge zu verwenden und das größte in der Zeichenfolge enthaltene Quadrat auszugeben, das die obere linke Ecke enthält.
Eine quadratische Zeichenfolge ist eine Zeichenfolge, bei der:
- Jede Zeile hat die gleiche Anzahl von Zeichen
- Die Anzahl der Zeichen in jeder Zeile entspricht der Anzahl der Zeilen.
Berücksichtigen Sie die folgende mögliche Eingabezeichenfolge:
abcde
fgh
asdf
foobar
Das größte Quadrat, das Sie daraus entnehmen können und das das erste Zeichen (das ain der oberen linken Ecke) enthält, ist das folgende:
abc
fgh
asd
Es kann kein Quadrat mit der Seitenlänge 4 geben, da die zweite Zeile nicht lang genug ist. Betrachten Sie nun diese mögliche Eingabe:
a
bcd
edf
ghi
Der größte Platz hier ist gerade a. Das 3x3-Quadrat im unteren Bereich enthält nicht das erste Zeichen und zählt nicht.
Hier noch ein paar Testfälle:
a
a
abc
def
gh
ab
de
ab
cd
ab
cd
abcde
fghij
klm
no
abc
fgh
klm
a
b
a
Möglicherweise müssen Eingaben durch die Auswahl von LF, CR oder CRLF begrenzt werden.
Die Zeilenumbruchzeichen werden nicht als Teil der Zeilenlänge betrachtet.
Möglicherweise muss eine nachgestellte Zeile in der Eingabe vorhanden sein oder nicht, was nicht als zusätzliche Zeile zählt.
Die Eingabe ist eine Zeichenfolge oder ein 1D-Zeichen-Array. Es ist keine Liste von Zeichenfolgen.
Sie können davon ausgehen, dass die Eingabe nicht leer und alle Zeilen nicht leer sind und dass sie nur druckbares ASCII enthält, einschließlich Leerzeichen und Zeilenumbrüchen (für den Zeilentrenner), jedoch keine Tabulatoren.
Das ist Code-Golf , die wenigsten Bytes gewinnen!
.split('\n')deshalb verstehe ich nicht, warum manche es kostenlos bekommen sollten.