最長回文子串

2021-06-18 15:07:56 字數 734 閱讀 6473

最長回文子串也是筆試和面試環節經常出現的乙個題目,基本的思想很簡單,就是從頭開始,以每個點為中點位置,然後向兩邊搜尋最長的相等的串,有乙個需要注意的地方就是串的長度為偶數或者奇數時的不同情況,比如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,且佔據單獨一行,輸出最長的回文子串 如有多個,輸出,起始位置最...