最長回文子串

2021-07-23 15:48:22 字數 548 閱讀 5959

2016.10.12

題目:回文串是指這個字串無論從左讀還是從右讀,所讀的順序是一樣的;簡而言之,回文串是左右對稱的。現在,對於乙個給定的母串「abcdedcb」。可以找出子串a, ded, cdedc, bcdecdb等均是回文串;顯然,bcdecdb是其中最長的那乙個。但是該如何找出最長的回文子串呢?

解題思路:最簡單的想法就是用窮舉,直接窮舉出所有的可能,簡單粗暴。

注意:簡單的窮舉時間複雜度是o(n3),太高了。需要優化一下演算法,因為是回文,所以想到了找到乙個中心軸,從中心軸開始窮舉,可以使時間複雜度降道o(n2)。

可以用棧的方式來尋找最長回文子串

//最長回文子串行

//用窮舉,從中心軸開始遍歷

#include #include #include using namespace std;

int temp(char *str, int mid)

return r - l - 1;

}int longest(char *str)

int main()

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

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,且佔據單獨一行,輸出最長的回文子串 如有多個,輸出,起始位置最...