Sebuah graf bipartit adalah grafik yang simpul dapat dibagi menjadi dua menguraikan set, sehingga tidak ada tepi menghubungkan dua simpul di set yang sama. Grafik adalah bipartit jika dan hanya jika 2-warna.
Tantangan
Tugas Anda adalah, mengingat matriks adjacency dari grafik sederhana yang tidak terarah, menentukan apakah itu adalah grafik bipartit. Yaitu, jika suatu sisi menghubungkan simpul i dan j, keduanya (i, j) dan (j, i) entri dari matriks adalah 1.
Karena grafik tidak terarah dan sederhana, matriks adjacency-nya simetris dan hanya berisi 0 dan 1.
Spesifik
Anda harus mengambil matriks N-by-N sebagai input (dalam bentuk apa pun, misalnya daftar daftar, daftar string, int**
ukuran dan ukuran C , susunan rata, input mentah, dll.).
Fungsi / program harus mengembalikan / menampilkan nilai kebenaran jika grafiknya bipartit, dan sebaliknya palsu.
Uji Kasus
['00101',
'00010',
'10001',
'01000',
'10100'] : False
['010100',
'100011',
'000100',
'101000',
'010000',
'010000'] : True (divide into {0, 2, 4, 5} and {1, 3})
['00',
'00'] : True
Mencetak gol
Bawaan yang menghitung jawaban secara langsung dilarang.
Ini adalah kode-golf , jadi program terpendek (dalam byte) pada akhir bulan ini menang!
-1
untuk falsy dan bilangan bulat non-negatif untuk truthy?
0
-> Falsy, >0
-> Truthy pada umumnya diizinkan oleh aturan kebenaran / kepalsuan standar. -1
dan ≥ 0
tidak umum, itu sebabnya saya bertanya.