回文的詞特點是正序和倒序拼寫相同給,比如noon以及redivider。用遞迴的思路來看,回文詞的收尾相同,中間部分是回文詞。
下面的函式是把字串作為實際引數,然後返回函式的頭部、尾部以及中間字母:
def first(word):
return word[0]
def last(word):
return word[-1]
def middle(word):
return word[1:-1]
把這些函式輸入到乙個名字叫做palindrome.py的檔案中,測試一下輸出。如果中間你使用乙個只有兩個字元的字串會怎麼樣?乙個字元的怎麼樣?空字串,比如『』沒有任何字母的,怎麼樣?
.寫乙個名叫is_palindrome的函式,使用字串作為實際引數,根據字串是否為回文詞來返回真假。可以用內建的len函式來檢查字串的長度。
1、空字串時 字串下標越界 報錯
2、**如下
# -- coding: utf-8 --
'''不支援中文注釋時加編碼說明'''
def first(word):
return word[0]
def last(word):
return word[-1]
def middle(word):
return word[1:-1]
def is_right(word): #注意基準條件 先判斷長度否則字串下標會越界
if len(word) < 2:
return true
if first(word) != last(word):
return false
return is_right(middle(word))
if __name__ == '__main__': #import時不執行 指令碼執行時執行
word = 'nn'
if (len(word) ==(0 or 1)) or is_right(word):
print(word + '是回文串')
else:
print(word + '不是回文串')
def ispalindrome(s):
return s == s[::-1]
s[::-1] 字串翻轉
python實現 判斷回文字串 回文鍊錶 回文數
所謂回文字串,就是正讀和反讀都一樣的字串,比如 level 或者 noon 等等就是回文串。即是對稱結構 判斷回文字串 方法一 def is palindrome s return true if s s 1 else false方法二 def is palindrome s length len ...
判斷回文串,判斷回文數,最長回文串,回文串的個數
判斷乙個字串是否是回文串,首先了解下它的定義 回文串 是乙個正讀和反讀都一樣的字串,比如 level 或者 noon 等等就是回文串。所以判斷是否是回文串,判斷這個字串是否對稱即可。從而用兩個指標同時向中間掃瞄即可判斷。判斷字串是否是回文串,即判斷是否對稱。兩邊指標同時向中間掃瞄,判斷是否相等,不等...
回文字串判斷 遞迴實現
所謂回文字串,就是乙個字串,從左到右讀和從右到左讀是完全一樣的。比如 level aaabbaaa 題目 判斷乙個字串是否為回文 解法 遞迴 遞迴的作用在於把問題的規模不斷縮少,直到問題縮少到能簡單地解決 問 如何縮少問題規模?答 通過觀察可以知道,乙個回文字串其中內部也是回文。所以,我們只需要以去...