สตริงที่มีความยาวคือตัวเลขสามเหลี่ยมบวก(1, 3, 6, 10, 15 ... ) สามารถจัดเรียงเป็น "สามเหลี่ยมข้อความรูปสามเหลี่ยมด้านเท่า" โดยการเพิ่มช่องว่างและบรรทัดใหม่ (และเก็บไว้ในลำดับการอ่านเดียวกัน)
ตัวอย่างเช่นความยาว 10 สตริงABCDEFGHIJ
กลายเป็น:
A
B C
D E F
G H I J
เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้ในสตริงเช่นยกเว้นจะมีเพียงตัวละครและ0
1
(คุณอาจสมมติว่าอินพุตถูกต้อง)
สำหรับผลลัพธ์ "สามเหลี่ยมข้อความด้านเท่ากันหมด" ผลลัพธ์ (พิมพ์หรือส่งคืน) หนึ่งในสี่หมายเลขที่แสดงถึงประเภทของสมมาตรที่จัดแสดง:
เอาท์พุท
2
ถ้าสามเหลี่ยมมีสมมาตรทวิภาคี นั่นคือมันมีเส้นสมมาตรจากมุมหนึ่งไปยังจุดกึ่งกลางของฝั่งตรงข้ามตัวอย่าง:
0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 0 1 1 1
เอาต์พุต
3
ถ้าสามเหลี่ยมมีสมมาตรแบบหมุน นั่นคือสามารถหมุนได้ 120 °โดยไม่มีการเปลี่ยนแปลงภาพตัวอย่าง:
0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 1 1 1
เอาท์พุท
6
ถ้าสามเหลี่ยมมีทั้งสมมาตรทวิภาคีและการหมุน คือมันตรงกับเงื่อนไขสำหรับการแสดงผลทั้งในและ2
3
ตัวอย่าง:
0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0
เอาท์พุท
1
ถ้าสามเหลี่ยมไม่มีทั้งสองข้างและสมมาตรการหมุนตัวอย่าง:
1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1
รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ Tiebreaker เป็นคำตอบก่อนหน้า
นอกเหนือจากการขึ้นบรรทัดใหม่ต่อท้ายตัวเลือกสายป้อนอาจไม่ได้มีพื้นที่ / padding ขึ้นบรรทัดใหม่หรือโครงสร้าง - มันควรจะเป็นธรรมดา0
'และ1
' s
ถ้าต้องการคุณอาจใช้ใด ๆ ที่แตกต่างกันสองASCII พิมพ์ตัวอักษรในสถานที่และ0
1
กรณีทดสอบ
ถ่ายโดยตรงจากตัวอย่าง
011 -> 2
101 -> 2
001010 -> 2
1111010111 -> 2
0100110100 -> 3
0011000010 -> 3
101111111010111 -> 3
101001100010000100111 -> 3
0 -> 6
1 -> 6
000 -> 6
100101 -> 6
0000100000 -> 6
110000 -> 1
001101 -> 1
1101111111 -> 1
111111000111111 -> 1
"การหมุน" อินพุตใด ๆ ที่ 120 °จะส่งผลให้ผลลัพธ์เดียวกัน