题解 | #密码截取#窗口移动,javascript

密码截取

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

从最大子串开始缩小窗口,不断移动窗口寻找合适子串

//javaScriptV8
str=readline();
const n=str.length
let l=1;//默认长度为1
function help(str, i, j){//重构寻找方法
  if (str.length = 1) return true;
  while (i < j) {//可以解决奇偶不同问题
    if (str[i] !== str[j]) return false;
    i++;
    j--;
  }
  return true;
};
// function help(str){//超时
//     if(str.split('').reverse().join('')==str) return true
//     return false
// }
for(let i=n;i>1;i--){//利用窗口寻找
    for(let j=0;j<=n-i;j++){
        if( help( str,j,j+i-1 ) ){
            l=i;//遇到合适立即跳出
            break;
        }
    }
    if(l>1) break;//跳出多重循环
}
console.log(l)

使用数组reverse方法判断会导致超时

方法改进来自https://blog.nowcoder.net/n/2c488259ec63452093ff1f3ed066dc06

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-29 17:30
找实习找着找着就要进入7月了,马上秋招也要开始了,找实习还有意义吗?
绝迹的星:有面就面, 没面上就当日薪4位数大佬免费培训, 面上了再考虑要不要实习
点赞 评论 收藏
分享
每晚夜里独自颤抖:你cet6就cet6,cet4就cet4,你写个cet证书等是什么意思。专业技能快赶上项目行数,你做的这2个项目哪里能提现你有这么多技能呢
点赞 评论 收藏
分享
每晚夜里独自颤抖:要求太多的没必要理
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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