链接
代码:
class Solution {
public:
int countSubstrings(string s) {
int res = 0;
for(int i = 0;i<s.size();i++){
for(int j = i,k = i;j>=0&&k<s.size();j--,k++){
if(s[j]!=s[k])break;
else res++;
}
for(int j = i,k = i+1;j>=0&&k<s.size();j--,k++){
if(s[j]!=s[k])break;
else res++;
}
}
return res;
}
};
题解:
首先我们人工模拟发现,偶数串和奇数串判断回文串方式不同。所以要分类讨论。
abccba(偶数长度字符串)
abccba
看起来是中心开花的方式,让两个指针指向相邻字母,一个往左一个往右,看字母是否相等,相等则继续往外扩展进行判断。
——————————————————
abcba(奇数长度字符串)
abcba
以一个字母为核心,往两边扩展。