Takuzu เป็นเกมลอจิกที่คุณต้องทำกริดกับเซลล์ที่มี0
s และ1
s กริดต้องเป็นไปตามกฎ 3 ข้อ:
- ไม่มีเซลล์ติดต่อกันสามเซลล์ในแนวนอนหรือแนวตั้ง
- จะต้องมีจำนวน
0
s และ1
s เท่ากันในแต่ละแถวและคอลัมน์ - ไม่มีสองแถวที่เหมือนกันและไม่มีสองคอลัมน์ที่เหมือนกัน
ลองดูตารางที่เสร็จแล้ว:
0011
1100
0101
1010
ที่คุณสามารถดูบอร์ดนี้เป็นไปตามกฎ1
, และ2
3
ไม่มีเซลล์แนวนอนหรือแนวตั้งสามเซลล์ที่เหมือนกันแถวและคอลัมน์ทั้งหมดมีจำนวน0
s และ1
s เท่ากันและไม่มีสองแถวและไม่มีสองคอลัมน์เหมือนกัน
ลองดูตารางที่ไม่ถูกต้อง:
110100
010011
011010
101100
100011
001101
มีปัญหามากมายกับกริดนี้ ตัวอย่างเช่นแถว5
มีสาม0
s ในแถวและคอลัมน์2
มีสาม1
s ในแถวตามด้วยสาม0
s ดังนั้นนี่ไม่ใช่กริดที่ถูกต้อง
งาน:
งานของคุณคือการทำโปรแกรมที่กำหนดให้อาร์เรย์n
* n
0
s และ1
s เป็นแบบ 2 มิติตรวจสอบบอร์ดเพื่อดูว่าบอร์ดทาคูซุที่ใช้งานได้นั้นถูกต้องหรือไม่
ตัวอย่าง:
0011
1100
0101
1010
บอร์ดนี้ปฏิบัติตามกฎทั้งหมดและดังนั้นจึงเป็นบอร์ด Takuzu ที่ถูกต้อง คุณต้องส่งคืนค่าความจริงสำหรับสิ่งนี้
11
00
นี้ไม่ได้เป็นคณะกรรมการที่ถูกต้อง - แถวไม่เป็นไปตามกฎ1
2
คุณต้องส่งคืนค่าเท็จสำหรับสิ่งนี้
100110
101001
010101
100110
011010
011001
นี่ไม่ใช่บอร์ดที่ถูกต้อง แต่ล้มเหลว (เฉพาะ) เนื่องจากกฎ 3 - แถวแรกและแถวที่สี่เหมือนกัน
110100
001011
010011
101100
100110
011001
นี่ไม่ใช่บอร์ดที่ถูกต้อง แต่ล้มเหลว (เฉพาะ) เนื่องจากกฎ 3 - คอลัมน์แรกและคอลัมน์ที่สี่เหมือนกัน
011010
010101
101100
010011
100110
101001
นี่คือคณะกรรมการที่ถูกต้อง
กฎและข้อกำหนด:
- คุณสามารถสมมติว่าบอร์ดทั้งหมดเป็นสแควร์ขนาด
n * n
ซึ่งn
เป็นจำนวนเต็มบวก - คุณสามารถสมมติได้ว่าบอร์ดทั้งหมดเสร็จสิ้นแล้ว
- คุณอาจรับอินพุตเป็นอาร์เรย์ 2D ที่มีค่าที่บ่งบอกถึง
0
และ1
หรือเป็นสตริง - คุณต้องส่งออกค่าความจริงและค่าคงที่ที่สอดคล้องกันสำหรับกระดานความจริงและค่าความเท็จและค่าที่เป็นตัวแทนของ "ความจริง" และ "เท็จ" จะต้องไม่เหมือนกัน
นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ!