งานของคุณคือการกำหนดจำนวนสายอักขระที่สมบูรณ์แบบของสตริง palindrome ทั่วไปของคุณ (เช่น 12321) เป็น palindrome ที่สมบูรณ์แบบ ความสมบูรณ์แบบคือ 1
ในการกำหนดความสมบูรณ์แบบของสตริงคุณจะเห็นว่าคุณสามารถแบ่งส่วนต่างๆออกเป็นส่วนต่างๆซึ่งแต่ละส่วนเป็น Palindrome หากมีความคลุมเครือเช่นด้วยaaaa
ในขณะที่คุณสามารถแยกมันออกเป็น[aa, aa]
หรือ[aaaa]
หรือ[a, aaa]
หรือ[aaa, a]
ชุดที่สั้นที่สุดจะแทนที่ให้aaaa
คะแนน 1 ซึ่งเป็นความยาวของชุดที่สั้นที่สุด
ดังนั้นคุณต้องเขียนโปรแกรมหรือฟังก์ชั่นที่จะรับอินพุตและเอาต์พุตที่ไม่ว่างหนึ่งอันสมบูรณ์แบบ (ซึ่งเป็นความยาวของเซ็ตที่สั้นที่สุดที่คุณสามารถแยกมันออกเป็นส่วน ๆ ของแต่ละอิลิเมนต์ในชุด)
ตัวอย่าง:
1111 -> 1 [1111]
abcb -> 2 [a, bcb]
abcbd -> 3 [a, bcb, d]
abcde -> 5 [a, b, c, d, e]
66a -> 2 [66, a]
abcba-> 1 [abcba]
x -> 1 [x]
ababacab -> 2 [aba, bacab]
bacababa -> 2 [bacab, aba]
26600 -> 3 [2, 66, 00] [my user id] [who has a more perfect user id?]
ababacabBACABABA -> 4 [aba, bacab, BACAB, ABA]
โปรดทราบว่าในตัวอย่างสิ่งใดในวงเล็บเหลี่ยมไม่ควรเป็นส่วนหนึ่งของผลลัพธ์
ababacab
และสิ่งที่ตรงกันข้ามก็bacababa
ดูเหมือนจะเป็นกรณีทดสอบที่ดี
ababacabBACABABA
เป็นกรณีทดสอบที่ดี (คำตอบบางข้อล้มเหลว)