給定乙個字串「abcdcbadegtefetge」 得到最大回文字串「egtefetge」
找到所有子串,判斷每乙個子串是否是回文.即a==a[::-1]
def verifyreverse(st):
target = ''
flag = false
if st == st[::-1]:
target = st
else:
current = len(st) - 1
while current > 0:
for i in range(len(st) - current + 1):
tmp = st[i:i+current]
print(tmp)
if tmp == tmp[::-1]:
target = tmp
flag = true
break
if flag:
break
current -= 1
return target
print(verifyreverse("abcdcbadegtefetge"))
先判斷整個是否是回文,yes 賦值
list 切片。 第一次的時候,range(2) ,i 取值 0,1. 如果沒有找到回文,那麼current -1
第二次,range(3),
對每乙個子串,判斷回文。如果是,把當前子串賦值給target, 並且跳出
最大回文子串行 最大回文子串
最大回文子串行,例如cafgfkc,最大回文子串行cfgfc,輸出5。子串行相當於刪除某些位置上的字元後形成的序列。最大回文子串,例如cafgfkc,最大回文子串fgf,輸出3。子串相當於擷取start位到end位的子串。試過沒認真看題目,原題是求子序列,想當然以為求子串,直接高高興興用manach...
最大回文子串
輸入乙個字串,求出其中最大回文子串的長度。子串的含義是 在原串中連續出現的字串片段。回文的含義是 正著看和倒著看相同,如abba和yyxyy。在判斷時,應該忽略所有標點符號和空格,且忽略大小寫,但輸出應保持原樣 在回文串的首部和尾部不要輸出多餘字元 include string include io...
最大公共子串行,最大公共子串,最大回文子串
1 兩個字串中最長公共子串行 該問題是動態規劃的經典問題,找出的公共序列不一定是連續的,參考資料很多,這裡就貼出公式和 做個簡單的筆記。設序列a,b的長度分別為n和m,l i,j 為a i b j 的最長公共子串行長度,有遞推公式 時間複雜度為o mn 如下 define n 50 intlcs c...