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...