双回文串(889499) 题解

做法1:
枚举每一种可能的分割方案,得到前面和后面两个子串,判断这两个子串是不是都是回文串

bool isOk(string S) {
    for (int i = 0; i < S.size(); i++) {
        if (S[i] != S[S.size() - 1 - i]) {
            return false;
        }
    }
    return true;
}

int CountDoublePalindromeString(string S) {
    int n = S.size();
    int ans = 0;
    for (int i = 0; i <= n; i++) {
        ans += (isOk(S.substr(0, i)) && isOk(S.substr(i)));
    }
    return ans;
}

做法2:
在做法1的基础上可以加一点小优化,不用把子串生成出来,只需要原串上判断某一段下标构成的子串是否是回文串即可。

int CountDoublePalindromeString(string S) {
    int n = S.size();
    int ans = 0;
    for (int i = 0; i <= n; i++) {
        bool ok = true;
        for (int j = 0; j < i; j++) {
            ok &= (S[j] == S[i - 1 - j]);
        }
        for (int j = i; j < n; j++) {
            ok &= (S[j] == S[i + n - 1 - j]);
        }
        ans += ok;
    }
    return ans;
}
全部评论

相关推荐

11-20 22:03
东北大学 Java
用哈基米写的简历,有点夸大,等我后面改谦虚点,能不能找个日常实习,项目是点评和天机,没什么荣誉要不要把蓝桥杯和六级删了算了,实在没门面
程序员花海:日常实习这份简历够用的,等实习之后把实习经历结合业务好好写一下 到时候把实习经历放在项目经历的前面 可以看我主页修改简历的模板
如何写一份好简历
点赞 评论 收藏
分享
未知的命运:大佬这都找不到我还找啥啊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务