这道题如果使用下面的O(NNN)的时间复杂度的话,只能jawa或者C++才可以解决~python超时。
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param a string字符串 待计算字符串
* @return int整型
*/
// 这个部分可是错漏百出啊~~~判断是否是对称的 注意起点,终点是变化的
bool is_symetric(int m, int len, string a){
for(int i=m; i<m+len; i++){
if(a[i] != a[i+len]){
return false;
}
}
return true;
}
int solve(string a) {
// write code here
if(!a.size()){
return 0;
}
int max_len = a.size()/2;
for (int i=max_len; i>0; --i){
//0, (max_len - i)*2+1
for (int j=0; j < (a.size()-i*2)+1; j++){
//for (int j=0; j < (max_len-i)*2+1; ++j){
if (is_symetric(j, i, a)){
return i * 2;
}
}
}
return 0;
}
};