题解 | #密码截取#

密码截取

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

#include <string>
#include <iostream>
#include<vector>
using namespace std;
 
int main(){
    string s;
    getline(cin,s);
    int n=s.size();
    vector<vector<bool>> dp(n,vector<bool>(n));
    int res=0;
    for(int l=0;l<n;l++){
        for(int i=0;i<n;i++){
            int j=i+l;
            if(j>=n) break;
            if(l==0) dp[i][j]=true;
            else if(l==1&&s[i]==s[j]) dp[i][j]=true;
            else if(l>=2&&s[i]==s[j]&&dp[i+1][j-1]) dp[i][j]=true;
            
            if(dp[i][j]){
                res=max(res,l+1);
            }
        }
    }
    cout<<res<<endl;
    
    
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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