题解 | #查找两个字符串a,b中的最长公共子串#判断刚好

查找两个字符串a,b中的最长公共子串

https://www.nowcoder.com/practice/181a1a71c7574266ad07f9739f791506

let s1 = readline();
let s2 = readline();
let tmp = "";
if (s1.length > s2.length) {
  tmp = s1;
  s1 = s2;
  s2 = tmp;
}

let myS = "";
let s_window = "";
let flag;

//滑动窗口 右边界每次i++放进去。左边界:如果子串重合,左不动;如果不重合,左边界删掉头部
//左边删掉头部后,右边界可以继续+1,因为上一个myS已经是同等数量中最早出现的,所以并不需要再次判断同等数量的新串
for (let i = 0; i < s1.length; i++) {
  s_window += s1[i];
  //   flag = new RegExp(s_window).test(s2);//每次循环都需要创建一个regexp对象,内存消耗太多
  flag = s2.indexOf(s_window); //所以用indexOf
  if (flag != -1) {
    myS = s_window.length > myS.length ? s_window : myS;
  } else {
    s_window = s_window.slice(1);
  }
}

print(myS);

全部评论

相关推荐

2025-12-28 16:32
重庆邮电大学 Java
程序员花海:1.技能放最后,来面试默认你都会,技能没啥用 2.实习写的看起来没啥含金量,多读读部门文档,包装下 接LLM这个没含金量 也不要用重构这种 不会给实习生做的 3.抽奖这个还是Demo项目,实际在公司里面要考虑策略,满减,触发点,触发规则 库存 之类的,不是这个项目这么简单 4.教育背景提前,格式为 教育背景 实习 项目 技能 自我评价
简历被挂麻了,求建议
点赞 评论 收藏
分享
2025-12-26 10:52
河北传媒学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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