回文串
对于给定的一个字符串,要求求出多少个子串是回文串。
子串:字符串中连续的长度大于0的一段。
回文串:若字符串的倒序与此字符串相同,则称这个字符串为回文串。
bool IsPalindromicStr(string str) {
for (int i = 0; i < str.size()/2; ++i) {
if (str[i] != str[str.size() - 1 - i]) return false;
}
return true;
}
int countPalindromicSubstr(string str) {
int count = 0;
for (int i = 0; i<str.size(); i++) {
for (int j = 1; j< str.size()+1-i; j++) {
string substring = str.substr(i, j);
if (IsPalindromicStr(substring)) count++;
}
}
return count;
}
int main()
{
string testStr;
cout << "Enter string: " << endl;
cin >> testStr;
cout << countPalindromicSubstr(testStr) << endl;
}