- 双指针思路,从i从中间开始,然后j每次从头开始。向后来判断相同字母的个数,如果不同的话,立马要把他设置为0. 如果 hyper ==i 得时候,立马返回就行了。(双指针规律总结)
class Solution {
public:
int solve(string a)
{
int n = a.length(), hyres = 0;
for(int i = n / 2; i > 0; --i)
{ //枚举长度
for(int j = 0; j < n - i; ++j)
{ //枚举起点
if(a[j] == a[i + j])
{
++hyres; // 满足判断条件,hyres加一
}
else
{
hyres = 0; // 不满足条件则重置长度
}
if(hyres == i) return i * 2;
}
}
return 0;
}
}; 
京公网安备 11010502036488号