Giriş
Birkaç evden ve boş alanlardan başka bir şey olmayan küçük bir köy var. Yerel bürokratlar, köyü partilere bölmek istiyor, böylelikle her partide tam olarak bir ev var ve partilerin sınırları güzel bir düz çizgi ızgara oluşturuyor. Göreviniz bunun mümkün olup olmadığını belirlemektir.
Görev
Girişiniz dikdörtgen bir 2D bit dizisidir; 1 bir evi ve 0 boş bir alanı temsil eder. Boyutu en az 1 × 1 olacak ve en az 1 tane içerecektir. Girdiyi herhangi bir makul biçimde (iç içe tamsayılar listesi, dizgiler listesi, çok satırlı dize vb.) Alabilirsiniz.
Programınız, her bir ızgara hücresi tam olarak 1 içerecek şekilde düz yatay ve dikey çizgiler kullanılarak dizinin ızgara hücrelerine bölünüp bölünmeyeceğini belirleyecektir, böylece her bir dikdörtgen biçiminde olmasına rağmen, ızgara hücreleri farklı boyut ve şekillerde olabilir. Çizgiler dizinin bir kenarından diğer kenara doğru koşmalıdır.
Örneğin, aşağıdakiler bir dizinin geçerli bir bölümüdür:
00|0010|01|1
01|0000|00|0
--+----+--+-
00|0000|00|1
01|0010|01|0
--+----+--+-
01|1000|10|1
aşağıdaki bölüm geçerli değildir, çünkü 1 veya daha fazla 1 olmayan ızgara hücreleri vardır:
00|0010|01|1
--+----+--+-
01|0000|00|0
00|0000|00|1
01|0010|01|0
--+----+--+-
00|1000|10|1
Eğer geçerli bir bölüm varsa, bir gerçeğe uygun değer, aksi takdirde sahte bir değer vermelisiniz.
Kurallar ve puanlama
Tam bir program veya bir fonksiyon yazabilirsiniz. En düşük bayt sayısı kazanır.
Test durumları
[[1]] -> True
[[0,1],[1,0]] -> True
[[1,1],[1,0]] -> False
[[1,0,1],[0,1,0]] -> True
[[1,0],[0,1],[0,1]] -> True
[[1,0,0],[0,0,1],[0,1,1]] -> True
[[1,1,1],[1,1,1],[1,1,1]] -> True
[[1,0,1],[0,1,0],[1,0,0]] -> True
[[1,0,0],[1,0,0],[0,1,1]] -> False
[[0,0,0,0,1],[1,0,0,1,0],[0,0,0,1,0]] -> False
[[0,0,1,0,1],[0,0,0,1,0],[0,0,0,0,0]] -> True
[[1,1,0,0,0],[0,0,0,0,0],[1,0,1,0,0]] -> True
[[1,1,0,1,1],[0,1,0,1,1],[1,0,0,0,0]] -> True
[[0,0,0,0,0,0,0],[0,1,1,1,0,1,0],[0,1,0,0,1,0,0],[0,0,0,0,0,0,1],[0,0,1,0,0,0,1],[1,1,0,1,1,0,0]] -> False
[[1,1,0,0,0,0,0],[1,0,1,1,0,1,0],[0,0,0,0,1,0,0],[0,1,0,1,1,0,0],[1,0,0,0,1,1,0],[0,0,0,0,0,1,0]] -> False
[[0,1,0,1,1,1,0],[0,0,0,0,1,0,0],[0,0,0,0,0,0,0],[1,0,0,1,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,1]] -> True
[[0,1,0,0,1,0,1],[1,0,0,0,1,0,1],[0,0,1,0,1,0,1],[1,0,0,0,1,1,0],[0,0,0,1,1,1,0],[0,1,0,0,1,0,1]] -> True
[[0,1,0,0,1,0,0,1,0],[0,0,0,0,1,1,0,1,0],[1,1,0,0,1,0,0,0,0],[0,0,1,0,1,0,1,0,0],[0,0,1,0,1,0,1,0,0],[0,1,0,0,0,1,0,0,1],[0,1,0,0,0,0,1,0,0]] -> False
[[1,0,1,0,0,1,1,0,1],[0,1,1,0,0,1,1,0,1],[1,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,1,1],[0,1,1,0,1,0,1,0,1],[1,0,1,0,0,1,1,0,1]] -> True
[[1, 0, 1], [0, 1, 0], [1, 0, 0]]
Yeni yaklaşımımın başarısız olduğu tek 3x3 matris buydu.