最長對稱子串 馬拉車演算法

2021-08-29 05:18:44 字數 679 閱讀 1231

7-1 最長對稱子串 (25 分)

對給定的字串,本題要求你輸出最長對稱子串的長度。例如,給定is pat&tap symmetric?,最長對稱子串為s pat&tap s,於是你應該輸出11。

輸入在一行中給出長度不超過1000的非空字串。

在一行中輸出最長對稱子串的長度。

is pat&tap symmetric?
11
不知道暴力能不能過。

馬拉車板子題

#include using namespace std;

const int maxn =1e6;

string str;

string temp;

int len[maxn<<1];

int init(string st)

temp+='#';

temp+='$';

temp+='\0';

return 2*len+1;

}int manacher(string st,int len_)

ans = max(ans,len[i]);

}return ans - 1;

}int main()

最長對稱子串(馬拉車演算法)

對給定的字串,本題要求你輸出最長對稱子串的長度。例如,給定 is pat tap symmetric?最長對稱子串為 s pat tap s 於是你應該輸出11。輸入格式 輸入在一行中給出長度不超過1000的非空字串。輸出格式 在一行中輸出最長對稱子串的長度。輸入樣例 is pat tap symm...

最長對稱子串(馬拉車演算法)

一 第一步是改造字串 s,變為 t,其改造的方法如下 在字串 s 的字元之間和 s 的首尾都插入乙個 如 s abba 變為 t a b b a 我們會發現 s 的長度是 4,而 t的長度為 9,長度變為奇數了!那 s 的長度為奇數的情況時,變化後的長度還是奇數嗎?我們舉個例子,s abcba 變化...

最長回文子串(馬拉車演算法)

最長回文子串,即正反讀起來都一樣,例如 ababa manacher algorithm演算法利用了回文的重複特性,讓時間複雜度降為了o n 馬拉車演算法詳解 改造字串,在中心擴充套件法中,要求區分字串長度為奇數或偶數的情況,我們這裡對字串進行簡單的改造,讓字串變成奇數便於處理。例 ababad a...