在 Python 中檢查字串的字首和字尾是否為迴文


假設我們有一個字串 s,我們需要檢查該字串的字首和字尾子字串是否為迴文。

因此,如果輸入類似於 s = "levelishighforracecar",則輸出將為 True,因為存在迴文字首和字尾:分別為 "level" 和 "racecar"。

為了解決這個問題,我們將遵循以下步驟 -

  • l := s 的大小
  • 對於範圍從 2 到 l + 2 的 i,執行
    • 如果 s 的索引為 i 之前的子字串是迴文,則
      • 退出迴圈
    • 如果 i 等於 (l + 1),則
      • 返回 False
    • 對於範圍從 2 到 l + 2 的 i,執行
      • 如果 s 從索引 (l - i) 到 (l - 1) 的子字串是迴文,則
        • 返回 True
    • 返回 False

讓我們看看以下實現以獲得更好的理解 -

示例程式碼

線上演示

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

更新於: 2021年1月15日

280 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.