Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตรวจสอบว่าคำต่อท้ายและคำนำหน้าของสตริงเป็นพาลินโดรมใน Python . หรือไม่


สมมติว่าเรามีสตริง 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
    • คืนค่าเท็จ

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

โค้ดตัวอย่าง

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