题解 | #密码截取# 区间dp

密码截取

https://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1

#include <iostream>
using namespace std;
const int N = 2550;
bool dp[N][N]; 

int main() {
    string s;
    cin >> s;
    int n = s.length(), start = 0, maxLength = 1;

    for(int i = 0; i < n; i++) {
        dp[i][i] = true; 
        if(i < n-1 && s[i] == s[i+1]) {
            dp[i][i+1] = true; 
            start = i;
            maxLength = 2;
        }
    }

   
    for(int len = 3; len <= n; len++) {
        for(int i = 0; i <= n-len; i++) {
            int j = i + len - 1; 

            if(s[i] == s[j] && dp[i+1][j-1]) {
                dp[i][j] = true;
                start = i;
                maxLength = len;
            }
        }
    }

    cout << maxLength;
    return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-01 11:47
点赞 评论 收藏
分享
uu们,拒offer时hr很生气怎么办我哭死
爱睡觉的冰箱哥:人家回收你的offer,或者oc后没给你发offer的时候可不会愧疚你,所以你拒了也没必要愧疚他。
点赞 评论 收藏
分享
06-13 10:15
门头沟学院 Java
想去夏威夷的大西瓜在...:我也是27届,但是我现在研一下了啥项目都没有呀咋办,哎,简历不知道咋写
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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