ปัญหา
ให้สตริง s ตรวจสอบว่ามี prefix (ยาว ≥ 2) เป็นพาลินโดรม และ suffix (ยาว ≥ 2) เป็นพาลินโดรม หรือไม่
ตัวอย่าง
s = "levelishighforracecar" → prefix "level" (พาลินโดรม), suffix "racecar" (พาลินโดรม) → True
แนวคิดการแก้ปัญหา
- หา prefix พาลินโดรมแรก (ความยาว ≥ 2)
- หา suffix พาลินโดรมแรก (ความยาว ≥ 2)
- ถ้าทั้งคู่มี →
True
โค้ดตัวอย่าง
def is_palindrome(s):
return s == s[::-1]
def solve(s):
n = len(s)
# หา prefix palindrome
prefix_found = False
for i in range(2, n + 1):
if is_palindrome(s[:i]):
prefix_found = True
break
if not prefix_found:
return False
# หา suffix palindrome
for i in range(2, n + 1):
if is_palindrome(s[n-i:]):
return True
return False
print(solve("levelishighforracecar")) # True
อินพุต / เอาต์พุต
Input: "levelishighforracecar" Output: True