Giriş
Tahta: Bir 2B konteyner (matris, listeler listesi, vb.):
["B", "C", "C", "C", "C", "B", "B", "C", "A", "A"],
["B", "A", "C", "B", "B", "A", "B", "B", "A", "A"],
["B", "C", "B", "C", "A", "A", "A", "B", "C", "B"],
["B", "B", "B", "A", "C", "B", "A", "C", "B", "A"],
["A", "A", "A", "C", "A", "C", "C", "B", "A", "C"],
["A", "B", "B", "A", "A", "C", "B", "C", "C", "C"],
["C", "B", "A", "A", "C", "B", "B", "C", "A", "A"]
Bir liste listesi seçerseniz, tüm alt listelerin aynı uzunlukta olduğunu varsayabilirsiniz.
kurallar
- Geçerli bir dikdörtgen yapmak için, aynı 'harf' ile tüm dikdörtgen köşelere ihtiyacınız vardır.
- Örnek, örnek kartına X körüklü bakın. 'X' 'i (1,0)' da (4,0) 'de (1,3)' de ve (4,3) 'de görüyorsunuz. (1,0) ila (4,3):
X ile örnek kart :
["B", "X", "C", "C", "X", "B", "B", "C", "A", "A"],
["B", "A", "C", "B", "B", "A", "B", "B", "A", "A"],
["B", "C", "B", "C", "A", "A", "A", "B", "C", "B"],
["B", "X", "B", "A", "X", "B", "A", "C", "B", "A"],
["A", "A", "A", "C", "A", "C", "C", "B", "A", "C"],
["A", "B", "B", "A", "A", "C", "B", "C", "C", "C"],
["C", "B", "A", "A", "C", "B", "B", "C", "A", "A"]
- Amaç, dikdörtgeni veya en büyük alana sahip dikdörtgenlerden birini bulmaktır (sağ-sol + 1) * (alt-üst + 1)
- Aynı maksimum alana sahip birden fazla dikdörtgen varsa, herhangi birini çıkartın. İsteğe bağlı olarak (üst koordinat, sol koordinat, sağ koordinat, alt koordinat) sözlüksel olarak en küçük olanı.
- Dikdörtgenlerin, kartın kenarına paralel kenarları olmalıdır.
- Her harf, A'dan Z'ye (ikisi de dahil) yazdırılabilir bir ASCII karakteridir.
Çıktı
Çıktı, en büyük alan dikdörtgen köşelerinin sol ve sağ aşağı konumlarında olmalıdır. İlk örnek “tahta” için büyük kare sarı olandır:
Ve cevap şöyle olmalı:
[1, 1, 8, 4]
İkinci bir örnek test davası
Bir giriş:
["C", "D", "D", "D", "A", "A"],
["B", "D", "C", "D", "A", "A"],
["B", "D", "D", "C", "A", "C"],
["B", "D", "B", "C", "A", "C"]
Bir alan altı dikdörtgenini tanımlayan bu üç koordinat listesinden birini vermelidir:
[1, 0, 2, 2]
[1, 0, 3, 1]
[3, 2, 5, 3]
Bu soru, Taşma Taşması başlığında şöyle yazılmıştır: Dört köşeden oluşan 2B dizideki en büyük dikdörtgen nasıl bulunur? ve bu kaba JS çözümüyle ("kaba" diyebilirim çünkü kodum;):
Tamam, ilk görevim, lütfen bana karşı hoşgörülü ol. Testini geliştirmek için söylediğin her şeyi değiştireceğim.
((left,top),(right,bottom))
iyi olmalı. Cevap tamamen silindiğinde cevaplarımı sildim ve tekrar cevapladım.