给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。
具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。
示例 1:
输入: "abc" 输出: 3 解释: 三个回文子串: "a", "b", "c".
示例 2:
输入: "aaa" 输出: 6 说明: 6个回文子串: "a", "a", "a", "aa", "aa", "aaa".
注意:
- 输入的字符串长度不会超过1000。
class Solution {
public:
bool is_Palidom(string str)
{
int i = 0;
int j = str.size() - 1;
while (i < j)
{
if (str[i] != str[j])
{
return false;
}
i++;
j--;
}
return true;
}
int countSubstrings(string s) {
int count = 0;
for (int i = 0; i < s.size(); i++)
{
for (int j = i; j < s.size(); j++)
{
if (is_Palidom(s.substr(i, j - i + 1)))
{
count++;
}
}
}
return count;
}
};