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
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP