题解 | #最长回文子串#

最长回文子串

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

#include <iostream>
using namespace std;

int main() {
    int mxlen = 1;
    string s;
    cin >> s;
    for(int i=1; i<s.size(); i++){
        for(int j=0; j<i; j++){
            int k = j, u = i;
            while(s[k] == s[u] && k<u){
                k++;
                u--;
            }
            // 注意这里的判断条件:k>=u,只有这样才能包含子串个数是偶数和奇数的所有情况
            if(k>=u && (i-j+1)>mxlen){
                mxlen = i-j+1;
            }
        }
    }
    cout << mxlen << endl;
    return 0;
}
// 64 位输出请用 printf("%lld")

基本思路是判断输入字符中的以每个字符结尾的最大回文长度。

全部评论

相关推荐

点赞 评论 收藏
分享
05-20 13:59
门头沟学院 Java
米黑子米黑子:你这个成绩不争取下保研?
点赞 评论 收藏
分享
字节一直是我的白月光,考虑到转正还是拒了日常实习。
从明天开始狠狠卷JV...:为什么你释放的offer没流到我头上
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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