[本文出自天外歸雲的]
判斷字串本身是否是回文
返回字串中的所有子串
找到字串中包含的所有回文
判斷字串中是否包含回文
將字串變成乙個不包含回文的字串
**如下:
#判斷字串本身是否是回文
def is_huiwen(str, i=0):
#回文至少長度為2
if len(str) == 1:
return
false
#撞針法判斷是否是回文字串
while
true:
if i >= len(str) -i:
return
true
if str[i] != str[len(str) - i - 1]:
return
false
i += 1
#返回字串中所有的子串
all_substr = lambda str: [str[i:i + x + 1] for x in range(len(str)) for i in range(len(str) -x)]
#找到字串中包含的所有回文
def find_all_huiwen(str, ret=):
substrs =all_substr(str)
#遍歷字串中的所有子串並找出所有回文子串
for i in
range(len(substrs)):
ifis_huiwen(substrs[i]):
#判斷字串中是否包含回文
defcontain_huiwen(str):
substrs =all_substr(str)
#遍歷字串中所有子串並判斷字串中是否包含回文子串
for i in
range(len(substrs)):
ifis_huiwen(substrs[i]):
return
true
return
false
#將字串變成乙個沒有回文的字串
def no_huiwen(str, ret="", i=0):
#從字串的索引第0位開始到字串索引末位結束
while i < len(str) - 1:
#確保新生成的字串不包含回文
ifnot contain_huiwen(ret +str[i]):
ret +=str[i]
#逐位判斷
i += 1
return
retif
__name__ == '
__main__':
str = "
abccbabc
"find_all_huiwen(str)
(contain_huiwen(str))
print(no_huiwen(str))
演算法題4 回文數(python3實現)
判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121輸出 true示例 2 輸入 121輸出 false解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10輸出 false解釋 從右向左讀,為 01...
演算法入門 3 4回文
大致過程為 先預處理,將非字母字元去掉,並將所有大寫字母轉為小寫字母 然後從第二個字元開始作為中間元素查詢最長的回文,並記錄最長的長度和位置 難點是 輸出為原輸入字串的子串,這裡用的方法和作者的一樣,用陣列p記錄預處理後的每個字元在原字串的位置。如下 2014年6月24日23 16 08 inclu...
Python演算法高階 4 回文鍊錶
請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false示例 2 輸入 1 2 2 1 輸出 true第一種演算法採用 def ispalindrome self,head listnode bool vals current node head while current node ...