对于长度为n的字符串,只需遍历0-2*n-2,中心为left=n/2,right=n/2+1
然后只用针对每个中心一层循环遍历,时间复杂度为O(n^2),就把奇数偶数情况统一起来了。
class Solution {
public:
int countSubstrings(string s) {
int len=s.size();
int result=0;
for(int i=0;i<2*len-1;i++)
{
int left=i/2;
int right=i/2+i%2;
while(left>=0&&right<=len-1&&s[left]==s[right])
{
left--;
right++;
result++;
}
}
return result;
}
};