Python中的迴文:如何檢查一個數字是否為迴文?


什麼是迴文?

迴文是指從左到右讀和從右到左讀都相同的字串。換句話說,迴文字串是指其反轉等於原始字串的字串。

例如,civic、madam是迴文。

Cat不是迴文。因為它的反轉是tac,它不等於原始字串(cat)。

編寫一個程式來查詢輸入字串是否為迴文。

方法1 - 查詢字串的反轉

  • 程式中需要的主要內容是查詢字串的反轉。

  • 反轉可以使用任何反轉字串的方法來找到。我們將使用簡單的切片方法來反轉字串。內建的 ‘’.join(reversed()) 也可以使用。雖然還有其他方法可以反轉字串,但我們將使用簡單的方法。

  • 將反轉後的字串與原始字串進行比較。

  • 如果兩個字串相等,則返回true,否則返回false。

示例

def isPalindrome(s):
   rev=s[::-1]
   if(rev==s):
      return True
   return False
print("Enter a string")
st=input()
print(isPalindrome(st))

輸出

Enter a string
madam
True

方法2 - 不查詢字串的反轉

其思想是連續比較字串首尾字元,直到它們不相等。

我們將看到兩個不查詢字串反轉的示例:

字串值 "madam"

  • 我們比較第一個和最後一個字元,它們相等,接下來我們比較第二個和倒數第二個字元,它們也相等。最後我們只剩下一個字元。因此,該字串是迴文。

字串值 "reader"

  • 字元在第二個和倒數第二個元素之間的比較時相等。

    當第三個和倒數第三個字元比較時,它們不相等,因此它不是迴文。

  • 我們可以透過遞迴或使用兩個指標來實現這個想法。我們將使用兩個指標來實現。我們從起始指標為0和結束指標為最後一個索引開始。我們開始比較,如果字元相等,我們增加起始指標並減少結束指標(從而將它們帶到第二個和倒數第二個字元等等)。

  • 我們什麼時候返回false?如果我們發現任何一組指標的字元不相等,我們不需要查詢其他索引,我們可以返回False。

  • 我們什麼時候返回True?在另一種情況下,如果字串是迴文,當兩個指標相等(只剩下一個字元需要檢查)或起始指標超過結束指標(所有字元都已檢查)時,我們將返回True,因此返回true。

示例

def isPalindrome(s):
   rev=s[::-1]
   if(rev==s):
      return True
   return False
print("Enter a string")
st=input()
print(isPalindrome(st))

輸出

Enter a string
reader
False
>>>
Enter a string
madam
True

更新於: 2021年3月11日

578 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.