最長回文 HDU 3068

2021-09-10 03:40:09 字數 921 閱讀 4154

hdu - 3068 

給出乙個只由小寫英文本元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 output

4

3

參考部落格: 

#include#includeusing namespace std;

const int maxn = 110000+5;

const int mmaxn = maxn<<1;

char temp[maxn];

char arr[mmaxn];

int len[mmaxn];

int init()

arr[len*2+1] = '#';

arr[len*2+2] = '&';

arr[len*2+3] = 0;

return 2*len+1;

}int main()

if(i+len[i]>mx)

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

} printf("%d\n",ans-1);

}return 0;

}

注意一點,在加入首位的特殊表示『@』和『&』 這個兩個一定要不同,否則如果相同就需要做越界判斷,反正可以省去越界的判斷操作

HDU 3068 最長回文

題 目 鏈 接 看完後自己寫了一遍,感覺真的是很神奇的結論啊!本來這題看到可以用字尾陣列來寫的,但沒有學過,去看了一下,真心給暈了,決定找個機會認真研究下。我的 include include includeusing namespace std define min a,b a b a b cha...

HDU 3068 最長回文

存在o n 的演算法,學習了一下 include include includeusing namespace std const int maxn 300011 int n,p maxn char str maxn in maxn int main str 0 str 1 n n 2 2 str ...

HDU 3068 最長回文

problem description 給出乙個只由小寫英文本元a,b,c.y,z組成的字串s,求s中最長回文串的長度.回文就是正反讀都是一樣的字串,如aba,abba等 input 輸入有多組case,不超過120組,每組輸入為一行小寫英文本元a,b,c.y,z組成的字串s 兩組case之間由空行...