最長回文子串也是筆試和面試環節經常出現的乙個題目,基本的思想很簡單,就是從頭開始,以每個點為中點位置,然後向兩邊搜尋最長的相等的串,有乙個需要注意的地方就是串的長度為偶數或者奇數時的不同情況,比如abba和aba這樣的不同的子串,需要同時考慮到這兩種情況,做了乙個簡單的實現,簡單測試過,code如下:
#include #include #include using namespace std;
void fun(char *str,char *des)
//跳出迴圈,要麼是ts和te到了不相等的位置上,要麼是越界
if((cnt*2-1) > maxn ) //奇數
cnt =0;
ts=i,te=i+1;
while(str[ts] == str[te]
&& ts >= 0
&& te < len)
if((cnt *2) > maxn ) //偶數
}int k=0;
while(s <= e)
des[ k++ ] = str[s++];
des[k] = '\0';
}int main()
{ char str[1000];
while(cin >> str)
{ char des[500];
memset(des,0,sizeof(des));
fun(str,des);
cout << des <
最長回文子串 最長回文子串行
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,且佔據單獨一行,輸出最長的回文子串 如有多個,輸出,起始位置最...