求字串中最長回文串的長度

2021-10-19 17:29:56 字數 837 閱讀 7026

給出乙個只由小寫英文本元a,b,c…y,z組成的字串s,求s中最長回文串的長度.

回文就是正反讀都是一樣的字串,如aba, abba等

input

輸入有多組case,不超過120組,每組輸入為一行小寫英文本元a,b,c…y,z組成的字串s

兩組case之間由空行隔開(該空行不用處理)

字串長度len <= 110000

output

每一行乙個整數x,對應一組case,表示該組case的字串中所包含的最長回文長度.

sample input

aaaa

abab

sample output43

思路

求最長回文串的長度,kmp模板

**

#include

#include

#include

using

namespace std;

char s[

212345

],c[

112345];

int p[

212345];

void

into()

s[2*i+1]=

'#';

s[2*i+2]=

0;}int

qwe()}

mx=0;

for(i=

1;s[i]!=0

;i++

)return mx-1;

}int

main()

return0;

}

Manacher演算法 求字串中最長回文串

manacher演算法在對求字串中最長回文串問題中,具有o n 時間和空間複雜度。演算法的精妙之處在於巧妙的利用了回文串的對偶性質。第一步 對字元間新增間隔符,例如,字串aababcdab,通過新增間隔符轉化為 a a b a b c d a b 從而避免了字串的奇偶性問題,為了避免演算法中考慮邊界...

字串的最長回文長度

題目描述 輸入乙個字串,輸出該字串中回文子字串的最大長度。以mid為中心用另兩個指標分別向前和向後移動,直到指標到達字串兩端或者兩個指標所指的字元不相等。分為中心對稱和鏡面對稱兩種對稱形式,t n o n2 include include include define n 200000 int ma...

求字串的最長回文字串

題目描述 現給定乙個已知的字串str,現在想要在o n 的時間複雜度之內求出乙個最長的回文子字串 正著和倒著順序讀一致 演算法總結第三彈 manacher演算法,前面講了兩個字串相演算法 kmp和拓展kmp,這次來還是來總結乙個字串演算法,manacher演算法,我習慣叫他 馬拉車 演算法。相對於前...