Tantangan Anda hari ini adalah mengambil string multiline, dan menampilkan kuadrat terbesar yang terkandung dalam string yang mencakup sudut kiri atas.
String persegi adalah tempat:
- Setiap baris memiliki jumlah karakter yang sama
- Jumlah karakter pada setiap baris sama dengan jumlah baris.
Pertimbangkan kemungkinan input string berikut:
abcde
fgh
asdf
foobar
Kotak terbesar yang dapat Anda ambil dari itu yang mencakup karakter pertama ( a
di sudut kiri atas) adalah ini:
abc
fgh
asd
Tidak mungkin ada persegi panjang sisi 4, karena baris kedua tidak cukup panjang. Sekarang pertimbangkan input potensial ini:
a
bcd
edf
ghi
Alun-alun terbesar di sini adalah adil a
. Kotak 3x3 yang terbentuk di bagian bawah tidak mengandung karakter pertama, dan tidak masuk hitungan.
Berikut beberapa kasus uji lagi:
a
a
abc
def
gh
ab
de
ab
cd
ab
cd
abcde
fghij
klm
no
abc
fgh
klm
a
b
a
Anda mungkin memerlukan input untuk dibatasi oleh LF, CR, atau CRLF pilihan Anda.
Karakter baris baru tidak dianggap sebagai bagian dari panjang garis.
Anda mungkin memerlukan ada atau tidak menjadi baris baru di input, yang tidak dihitung sebagai baris tambahan.
Input adalah string atau array char 1D; ini bukan daftar string.
Anda dapat menganggap input tidak kosong dan semua baris tidak kosong, dan hanya berisi ASCII yang dapat dicetak, termasuk spasi dan baris baru (untuk pembatas baris) tetapi tidak tab.
Ini adalah kode-golf , byte terkecil menang!
.split('\n')
jadi saya tidak melihat mengapa beberapa harus mendapatkannya secara gratis.