最長回文子串

2021-09-26 03:20:21 字數 740 閱讀 6984

描述:

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

示例 1:

輸入: "babad"

輸出: "bab"

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

示例 2:

輸入: "cbbd"

輸出: "bb"

思路分析:

1、求最值、使用動態規劃

2、最後一步:找出最長的回文子串a[i…j

3、轉移方程:f[ i ][ j ] = f[ i + 1][ j - 1] and a[ i ] == a[ j ] ;表示從下標i到j構成回文子串,設為true

4、需要注意考慮 i + 1 < j - 1的情況

補充:此題同樣可以使用從中心擴散的方法,但是動態規劃更具有普遍性

ps:時間複雜度和空間複雜度都還有待提高

**實現:

class

solution

else

if(dp[i]

[j]==

true)}

}}stringbuilder sb =

newstringbuilder()

;for

(int i = idx; len >

0; len--

)return sb.

tostring()

;}}

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

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

最長回文子串

描述 輸入乙個字串,求出其中最長的回文子串。子串的含義是 在原串連續出現的字串片段。回文的含義是 正著看和倒著看是相同的,如abba和abbebba。在判斷是要求忽略所有的標點和空格,且忽略大小寫,但輸出時按原樣輸出 首尾不要輸出多餘的字串 輸入字串長度大於等於1小於等於5000,且單獨佔一行 如果...

最長回文子串

輸入乙個字元,求出其中最長的回文子串。子串的含義是 在元串中連續出現的字串片段。回文的含義是 正看和倒看相同,如abba和yyxyy,在判斷時候應該忽略所有的空格和標點符號,且忽略大小寫,但輸出應該保持原樣,輸入的字元長度不超過5000,且佔據單獨一行,輸出最長的回文子串 如有多個,輸出,起始位置最...