最長回文子串 V2(Manacher演算法)

2021-08-05 20:32:17 字數 593 閱讀 3102

回文串是指aba、abba、cccbccc、aaaa這種左右對稱的字串。

輸入乙個字串str,輸出str裡最長回文子串的長度。

input

輸入str(str的長度 <= 100000)

output

輸出最長回文子串的長度l。

sample input

daabaac
sample output

5
#include 

#include

#include

#include

using

namespace

std;

char s[100005],str[300005];

int num;

int len[300005];

void get_str()

str[k++]='#';

num=k;

}void manacher()

}}int main()

高效的求最長回文子串的演算法 Manacher

gdoi市選出了一道關於manacher的題目,於是打算學一下,但因為網路流鴿了一陣,最近才學完,學完後表示複雜度有點迷。manacher,俗稱馬拉車,是由一位名叫manacher的人與1975年提出的,這個演算法讓求最長回文子串的複雜度從o n 2 下降到了o n 先從n方演算法說起,n方演算法是...

最長回文子串 V2(Manacher演算法)

回文串是指aba abba cccbccc aaaa這種左右對稱的字串。輸入乙個字串str,輸出str裡最長回文子串的長度。input 輸入str str的長度 100000 output 輸出最長回文子串的長度l。input示例 daabaacoutput示例 5 include include ...

最長回文子串 2

忽略字串中的大小寫和標點 include include include define maxn 5000 10 測試資料 confuciuss say madam,i m adam 忽略大小寫 char buf maxn 儲存源字串 char s maxn 儲存去除標點並改為大寫後的字串,方便判斷...