动态规划方法求解
代码实现c++版
class Solution { public: int countSubstrings(string s) { int size = s.length(); int count = 0; vector<vector<int> > dp(size, vector<int>(size)); for(int j=0; j<size; j++){ for(int i=0; i<=j; i++){ if(i == j){ dp[i][j] = 1; count++; }else if(j - i == 1 && s[i] == s[j]){ dp[i][j] = 1; count++; }else if(j-i>1 && s[i] == s[j] && dp[i+1][j-1] == 1){ dp[i][j] = 1; count++; } } } return count; } };