传送门
描述
如果一个字符串正着读和倒着读是一样的,则称它是回文的。
给定一个长度为N的字符串S,求他的最长回文子串的长度是多少。
输入格式
输入将包含最多30个测试用例,每个测试用例占一行,以最多1000000个小写字符的形式给出。
输入以一个以字符串“END”(不包括引号)开头的行表示输入终止。
输出格式
对于输入中的每个测试用例,输出测试用例编号和最大回文子串的长度(参考样例格式)。
每个输出占一行。
输入样例:
abcbabcbabcba
abacacbaaaab
END
输出样例:
Case 1: 13
Case 2: 6
这个题是要我们求最大的长度,所以我们可以用manacher,也可以字符串哈希,这里主要分享字符串哈希做法
首先我们可以知道长度最小是1,所以我们就枚举答案,对于一个字符串是否是回文串我们只需要计算他正反的哈希值是否相同就行了
所以我们首先计算正反的哈希值,然后我们在从头开始枚举回文串的中心,然后先判断当前的答案区间是否是回文,如果是则继续往两边找
然后找到边界之后我们更新我们的答案,而如果当前区间不是回