程式設計題 最長回文子串

2021-07-29 18:51:03 字數 628 閱讀 2885

對於乙個字串,請設計乙個高效演算法,計算其中最長回文子串的長度。

給定字串a以及它的長度n,請返回最長回文子串的長度。

測試樣例:

"abc1234321ab",12
返回:7

解題思路

法一:中心擴散法( 時間複雜度o(n^2),空間複雜度o(n) )

-> 遍歷每個字元,以該字元為中心,向前、後擴散,直到不滿足回文時停下。

法二:動態規劃法( 時間複雜度o(n^2),空間複雜度o(n^2) )

-> 待續

法三:manacher演算法( 時間複雜度o(n) )

-> 待續

中心擴散法**:

class palindrome 

while(r < n && a[r] == a[i])

//前後同時擴散

while(l >= 0 && r < n)else

}maxlen = templen > maxlen ? templen : maxlen;

}return maxlen;

}};

最長回文子串 最長回文子串行

1.最長回文子串行 可以不連續 include include include include using namespace std 遞迴方法,求解最長回文子串行 intlps char str,int i,int j intmain include include include using n...

5 最長回文子串(中等題)

題目描述 給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb class solution if max count count 0 int m i in...

leetcode刷題 最長回文子串

看了一下題解,還有很多種方法,比如動態規劃,但是看了乙個下午也沒看太懂。所以就先把暴力破解弄懂吧。我這個菜雞,還要多多努力啊。主要問題在,不知道怎麼列舉字串的所有子串,題解中使用的是雙指標辦法,固定左指標,右指標移動得到全部的子串。最後,進行回文字串的驗證時,也是採用的雙指標方法來進行驗證。因此雙指...