กริดแบบหกเหลี่ยมได้รับความนิยมอย่างมากสำหรับความท้าทายเกี่ยวกับข้อมูล 2 มิติเมื่อไม่นานมานี้ อย่างไรก็ตามดูเหมือนว่ากริดรูปสามเหลี่ยมที่น่าสนใจไม่แพ้กัน ฉันต้องการแก้ไขด้วยความท้าทายที่ค่อนข้างง่าย
ก่อนอื่นเราจะแสดงตารางสามเหลี่ยมได้อย่างไร ลองพิจารณาตัวอย่างต่อไปนี้ (ไม่สนใจไดอะแกรมที่เหมาะสม)
เซลล์ตกลงอย่างเรียบร้อยบนกริดปกติ (ความแตกต่างของกริดปกติเป็นเพียงเซลล์ที่ถูกพิจารณาว่าติดกัน):
1234567
89abcde
fghijkl
mnopqrs
ในขณะที่แผนภาพด้านขวาแสดงให้เห็นว่าตารางสามเหลี่ยมมีสามแกนหลัก ได้แก่ แนวนอนและแนวทแยงสองเส้น
ไฮไลต์สิ่งเหล่านี้ในตาราง ASCII:
AVAVAVA
VAabcAV
fVAiAVl
mnVAVrs
ความท้าทาย
คุณได้รับสตริงรูปสี่เหลี่ยมผืนผ้าที่แสดงถึงรูปสามเหลี่ยม (ซึ่งมุมบนซ้ายเป็นรูปสามเหลี่ยมชี้ขึ้น) เซลล์ส่วนใหญ่ที่มีค่าเป็น.
แต่จะมีเซลล์สองเซลล์#
เช่น:
....#
.#...
.....
ตรวจสอบว่าทั้งสอง#
ถูกจัดตำแหน่งตามแนวแกนใด ๆ ในสามแกนของตารางหรือไม่ (เช่นว่าพวกเขานอนบนแถวเดียวในทิศทางใดก็ได้ที่เน้นด้านบน) สำหรับตัวอย่างนี้คำตอบคือ "ไม่"
คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่น, รับอินพุตผ่าน STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด), อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ของฟังก์ชันและส่งผลลัพธ์ผ่าน STDOUT (หรือทางเลือกที่ใกล้เคียงที่สุด), ค่าส่งคืนของฟังก์ชันหรือพารามิเตอร์
อินพุตอาจเป็นสตริงเดี่ยวที่คั่นด้วย linefeeds หรืออักขระที่สะดวกอื่น ๆ หรือรายการสตริง คุณอาจจะใช้สอง (สอดคล้อง) ตัวอักขระ ASCII ในสถานที่และ.
#
เอาท์พุทควรจะเป็นtruthyค่าถ้าเซลล์ที่ไฮไลต์มีความสอดคล้องและfalsyคุ้มค่าเป็นอย่างอื่น
ใช้กฎมาตรฐานของกอล์ฟ
กรณีทดสอบ
Truthy grids:
.#..#.
#
#
...........
...#.......
...........
...........
...........
.......#...
...........
...........
.......#...
...........
...........
...........
...#.......
...........
.#.........
...........
...........
...........
...........
.......#...
...........
...........
...#.......
...........
...........
...........
...........
.......#...
.........#.
...........
...........
...........
...........
...#.......
...........
...........
.......#...
...........
...........
...........
...........
...#.......
...........
.#.....#...
...........
...........
...........
กริดที่เป็นเท็จ:
#.....
.....#
.....#
#.....
...#.......
...........
...........
...........
...........
.......#...
...........
...........
...#.......
...........
...........
...........
...........
.........#.
.......#...
...........
...........
...........
...........
...#.......
...........
...........
.......#...
...........
...........
...........
...........
.#.........