Python 有效迴文


假設我們有一個帶有字母數字和符號的字串。也有小寫字母和大寫字母。我們必須檢查僅考慮小寫字母(大寫字母將轉換為小寫),是否忽略其他符號(如逗號、空格),該字串是否形成迴文。

假設字串類似於“A Man, a Plan, a Canal: Panama”,則透過考慮這些規則,它將變為“amanaplanacanalpanama”。這是一個迴文。

要解決這個問題,請按照下列步驟操作 –

  • 定義 x = “”
  • 讀取 str 中的每個字元 c –
    • 如果 c 是小寫字母或數字,則將 c 追加到 x 中
    • 否則,c 是一個大寫字母,然後只需將其轉換為小寫,並在 x 後追加
  • 如果 x 是迴文,則返回 True,否則返回 False

示例

讓我們看看實現效果,以便更好地理解

 Live Demo

class Solution(object):
   def isPalindrome(self, s):
      """
      :type s: str
      :rtype: bool
      """
      x = ""
      diff = ord('a') - ord('A')
      for i in s:
         if ord(i)>=ord('a') and ord(i)<=ord('z') or ord(i)>=ord("0") and ord(i)<=ord("9"):
            x+=i
         elif ord(i)>=ord('A') and ord(i)<=ord('Z'):
            i = chr(diff+ord(i))
            x+=i
      #print(s)
      #print(x)
      return x == x[::-1]
ob1 = Solution()
print(ob1.isPalindrome("A Man, a Plan, a Canal: Panama"))

輸入

s = "A Man, a Plan, a Canal: Panama"

輸出

true

更新於: 28-Apr-2020

827 瀏覽量

啟動你的職業

完成課程以獲得認證

開始
廣告