文章

232

粉丝

165

获赞

377

访问

120.9k

头像
回文子串数量 题解:
P812
发布于2026年3月25日 18:30
阅读数 120

#include <iostream>
#include <string>
using namespace std;

// 统计回文子串数量
int countSubstrings(string s) {
    int n = s.size();
    int ans = 0;
    // 遍历所有可能的回文中心
    for (int i = 0; i < n; ++i) {
        // 情况1:奇数长度回文,中心为单个字符 i
        int l = i, r = i;
        while (l >= 0 && r < n && s[l] == s[r]) {
            ans++;
            l--;
            r++;
        }
        // 情况2:偶数长度回文,中心为两个相邻字符 i 和 i+1
        l = i, r = i + 1;
        while (l >= 0 && r < n && s[l] == s[r]) {
            ans++;
            l--;
            r++;
        }
    }
    return ans;
}

int main() {
    string s;
    cin >> s;
    cout << countSubstrings(s) << endl;
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发