C++ 计算字符串中的回文串数量

2018-12-16  本文已影响38人  T句号T

回文串
对于给定的一个字符串,要求求出多少个子串是回文串。
子串:字符串中连续的长度大于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;
}
上一篇 下一篇

猜你喜欢

热点阅读