L2 008 最長對稱子串

2021-08-16 05:57:08 字數 826 閱讀 5004

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

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

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

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

is pat&tap symmetric?

以字串的各個元素為起點,向兩邊擴充套件,尋找對稱的字串,注意,要注意字串的長度,可能為奇數也可能為偶數,所以確定左右擴充套件起點時要處理一下。

另外,了解到還有一種時間複雜度為o(n)的manacher演算法

#include 

#include

#include

using

namespace

std;

const

int maxn=1005;

char str[maxn];

int leni[maxn],len;

int substring(int k)

left=k,right=k+1; //字串長度為偶數;

while(left>=0&&rightif(str[left--]==str[right++])

l2+=2;

else

break;

}l2--;

length=l1>l2?l1:l2;

return length;

}int main()

printf("%d\n",maxl);

return

0;}

L2 008 最長對稱子串

時間限制 100 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 對給定的字串,本題要求你輸出最長對稱子串的長度。例如,給定 is pat tap symmetric?最長對稱子串為 s pat tap s 於是你應該輸出11。輸入格式 輸入在一行...

L2 008 最長對稱子串

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

L2 008 最長對稱子串

原題 這道題可真是把我累的夠嗆,一開始是方法錯了,後來是題目定義不清晰理解錯誤,最後終於在第12次提交成功,廢話不說,總結如下 1.對稱,就是倒置之後還是不變,例如 aba 顛倒後還是 aba 所以思路就是,把原字串s1倒置過來,變成s2,然後求s1和s2最長公共子串 2.因為s1倒置過來變成s2,...