题解 | #最长回文子串#C++中心扩展法

最长回文子串

http://www.nowcoder.com/practice/12e081cd10ee4794a2bd70c7d68f5507

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

int getLen(string s, int l, int r) {
    while(l >= 0 && r < s.size() && s[l] == s[r]) {
        l--;
        r++;
    }
    return r - l -1;
}

// 使用中心扩展法
int main () {
    string s;
    while (getline(cin, s)) {
        int ans = 0;
        int len = s.size();
        int len1 = 0;
        int len2 = 0;
        for (int i = 0; i < len - 1; ++i) {
            len1 = getLen(s, i, i);
            len2 = getLen(s, i, i + 1);
            ans = max(ans, max(len1, len2));
        }
        cout << ans << endl;
    }


    return 0;
}
全部评论

相关推荐

2025-12-22 16:31
已编辑
桂林电子科技大学 Python
很奥的前端仔:如果你接了offer 临时又说不去 hr确实要多做一些工作。 当然如果是接offer之前当我没说
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

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