สมมติว่าเรามีสตริง s เราต้องตรวจสอบว่าสตริง palindromes เป็นคำนำหน้าและส่วนต่อท้ายของสตริงย่อยหรือไม่
ดังนั้น หากอินพุตเป็นเหมือน s ="levelishighforracecar" ผลลัพธ์จะเป็น True เนื่องจากมีคำนำหน้าและส่วนต่อท้ายของ palindrome:"level" และ "racecar" ตามลำดับ
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- l :=ขนาดของ s
- สำหรับฉันในช่วง 2 ถึง l + 2 ทำ
- ถ้า substring ของ s ถึง index i คือ palindrome แล้ว
- ออกมาจากลูป
- ถ้าฉันเหมือนกับ(l + 1) แล้ว
- คืนค่าเท็จ
- สำหรับฉันในช่วง 2 ถึง l + 2 ทำ
- หากสตริงย่อยของ s จากดัชนี (l - i) ถึง (l - 1) คือ palindrome แล้ว
- คืนค่า True
- หากสตริงย่อยของ s จากดัชนี (l - i) ถึง (l - 1) คือ palindrome แล้ว
- คืนค่าเท็จ
- ถ้า substring ของ s ถึง index i คือ palindrome แล้ว
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
โค้ดตัวอย่าง
def is_palindrome(s): return s == s[::-1] def solve(s): l = len(s) for i in range(2, l + 1): if is_palindrome(s[0:i]): break if i == (l + 1): return False for i in range(2, l + 1): if is_palindrome(s[l - i : l]): return True return False s = "levelishighforracecar" print(solve(s))
อินพุต
"levelishighforracecar"
ผลลัพธ์
True