题解 | #密码截取#

密码截取

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

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

int main(int argc, char* argv[]){
    string str;
    getline(cin, str);

    vector<vector<bool>> dp(str.size(), vector<bool>(str.size(), false));
    for(int i = 0; i < str.size(); ++i){
        dp[i][i] = true;
    }
    int maxlen = 1;
    for(int i = str.size() - 2; i >= 0; --i){
        for(int j = i + 1; j < str.size(); ++j){
            if(j - i == 1){
                dp[i][j] = (str[i] == str[j]);
            }
            else{
                dp[i][j] = (str[i] == str[j] && dp[i+1][j-1]);
            }
            if(dp[i][j] && j-i+1 > maxlen){
                maxlen = j-i+1;
            }
        }
    }
    cout << maxlen << endl;

    return 0;
}
全部评论

相关推荐

11-28 17:58
门头沟学院 Java
美团 JAVA开发 n×15.5
牛客786276759号:百度现在晋升很难的 而且云这块的业务没美团好 你看百度股价都跌成啥样了
点赞 评论 收藏
分享
11-18 16:08
福州大学 Java
影流之主:干10年不被裁,我就能拿别人一年的钱了,日子有盼头了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务