class Solution {
public:
//对具体的起点与长度,确认字符串是否为重复拼接形式
bool check(string& a, int len, int begin) {
for(int i = begin; i < len + begin; ++i) {
if(a[i] != a[i + len]) {
//这说明字符串肯定不存在重复拷贝在其后面,返回false
return false;
}
}
return true;//这说明在这个字符串后面存在它的拷贝
}
int solve(string a) {
int n = a.length();
for(int i = n / 2; i > 0; --i) {//枚举长度
for(int j = 0; j <= n - i - i; ++j) {//枚举起点
//起点要保证两个字符串拼接后长度不会大于原字符串
if(check(a, i, j)) {
return 2 * i;//说明找到了重复字符串,长度即为枚举长度两边
}
}
}
return 0;
}
};