5 最長回文子串

2022-02-02 06:52:28 字數 728 閱讀 3580

給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。

示例 1:

輸入: "babad"

輸出: "bab"

注意: "aba" 也是乙個有效答案。

示例 2:

輸入: "cbbd"

輸出: "bb"

解:這題我首先顛倒以下,用的最長公共子串的方法,發現有些情況下是錯的,如aabfgbaa,這樣求出來的回文串是錯的

所以加乙個判斷條件,當顛倒後的字元下標 加上當前連續字串的長度,等於當前正序的字元時,再改變最長子串的長度

class

solution }}

}}

return

s.substr(start_pos,max_value);

}};

中心擴散法和另外的動態規劃嘗試下

另外乙個動態規劃法

class

solution

//如果為1個或兩個字元時,不用判斷內部

//且長度為1和2的已排除 不會出現 i+1大於j-1的情況

vec[i][j]=(len==1||len==2||vec[i+1][j-1])&&s[i]==s[j];

if(vec[i][j]&&len>max_value)}}

return

s.substr(start_pos,max_value);

}};

5 最長回文子串

給定乙個字串s,找到s中最長的回文子串。你可以假設s長度最長為1000。示例 輸入 babad 輸出 bab 注意 aba 也是有效答案示例 輸入 cbbd 輸出 bb 方法1 用馬拉車演算法 字串動態規劃 來求最長回文子串時間複雜度可以達到o n 但是部落格裡面有個小失誤 這個id應該不是最大回文...

5 最長回文子串

給定乙個字串s,找到s中最長的回文子串。你可以假設s的最大長度為1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb class solution def longestpalindrome self,s k len s olist...

5 最長回文子串

給定乙個字串s,找到s中最長的回文子串。你可以假設s的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb 這道題比較船艇的應該是dp求法,但鄙人的dp特別特別的差勁。所以我選用中心擴充套件演算法,掃一遍所有節點,把被掃...