题解 | #密码截取#

密码截取

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

//超出内存限制的暴力递归,有没有啥办法呢……
#include<iostream>
#include<string.h>
#include<algorithm>
#include<map>
#include<utility>
using namespace std;
map<pair<int,int>,int>map1;
int ism(char*s,int i,int j){//如果是一个密码就返回密码长度,如果不是就返回-1
    int flag=0;int n=j-i+1;
    while(i!=j){
        if(s[i]==s[j]){
            if((j-i)==1)break;
            i++,j--;
        }else {
        flag=1;break;
        }
    
 }
  if(flag){
      map1[{i,j}]=-1;
      return -1;
  }
    else {
        map1[{i,j}]=n;
        return n;
    }
}

int f(char*s,int i,int j){
    if(map1.find({i,j})!=map1.end()){
    return map1[{i,j}];
    }
    if(ism(s,i,j)>0){
//         map1[{i,j}]=ism(s,i,j);
        return ism(s,i,j);
    }
    else{
        return max(f(s,i+1,j),f(s,i,j-1));
    }
}
int main(){
    char s[2502];
    fgets(s,2502,stdin);
    cout<<f(s,0,strlen(s)-2);
}
全部评论

相关推荐

05-25 10:45
门头沟学院 Java
Frank_zhang:没实习一个项目肯定不够,可以再做一个轮子,技术栈再补一个mq,微服务,整体再换个简历模板,暑期尽量再找一个日常实习
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-19 20:55
因为业务不是喜欢的,所以就没去,现在实习工作也有很多dirtywork,很后悔,怎么能舔回这个offer啊
flmz_Kk:试一试跟hr舔回来,不过保不齐米的活也有很多dirtywork,只能说不要美化自己没走过的路
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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