สมมติว่าเรามีสตริง s เราต้องตรวจสอบว่าสตริงที่กำหนดเป็น colindrome หรือไม่ Colindrome คือสตริงที่ต่อกันมาจาก palindrome ความยาว 6
เช่น ถ้าอินพุตเป็น s = "aabbaamnoonm" ผลลัพธ์จะเป็น True เนื่องจากมี palindrome "aabbaa" และ "mnoonm" ทั้งคู่ยาว 6
ในการแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้:
- ถ้าขนาดของ s ไม่ใช่พหุคูณของ 6 แล้ว
- คืนค่า False
- สำหรับ i ในช่วง 0 ถึงขนาดของ s - 1 เพิ่มทีละ 6 ทำ
- ถ้า s[จากดัชนี i ถึง i+5] ไม่ใช่ palindrome แล้ว
- คืนค่า False
- ถ้า s[จากดัชนี i ถึง i+5] ไม่ใช่ palindrome แล้ว
- คืนค่า True
ลองดูการนำไปใช้ดังต่อไปนี้เพื่อเข้าใจได้ดียิ่งขึ้น:
ตัวอย่าง
def is_palindrome(s):
return s == s[::-1]
def solve(s):
if len(s) % 6 != 0:
return False
for i in range(0, len(s), 6):
if not is_palindrome(s[i : i+6]):
return False
return True
s = "aabbaamnoonm"
print(solve(s))
อินพุต
"aabbaamnoonm"
ผลลัพธ์
True