当前位置: 首页 > news >正文

【LeetCode-简单题KMP】459. 重复的子字符串

文章目录

    • 题目
    • 方法一:移动匹配
    • 方法二:KMP算法

题目

在这里插入图片描述

方法一:移动匹配

在这里插入图片描述

class Solution {//移动匹配public boolean repeatedSubstringPattern(String s) {StringBuffer str = new StringBuffer(s);//ababstr.append(s);//拼接一份自己  ababababstr.delete(0,1);// babababstr.delete(str.length()-1,str.length());//bababa//删除第一个字符和最后一个字符,不然在str里面匹配s时  直接就能从开头匹配就没有意义了//我们要的就是拼接起来的部分  也能匹配到原来的sif(str.toString().contains(s)) return true; // str: bababa   s: ababreturn false;}
}

方法二:KMP算法

关键代码
参考视频讲解字符串这么玩,可有点难度! | LeetCode:459.重复的子字符串
参考题解:459.重复的子字符串—KMP解法
在这里插入图片描述

 // 最后判断是否是重复的子字符串,这里 next[len-1] 即代表next数组末尾的值if (next[len - 1] != 0 && len % (len - (next[len - 1])) == 0) {return true;}return false;
class Solution {//KMP算法public boolean repeatedSubstringPattern(String s) {if (s.length() == 0)   return false;int[] next = getNext(s);int len = s.length();// 最后判断是否是重复的子字符串,这里 next[len-1] 即代表next数组末尾的值if (next[len - 1] != 0 && len % (len - (next[len - 1])) == 0) {return true;}return false;}public int[] getNext(String s){int[] next = new int[s.length()];int j = 0;next[0]=j;for(int i = 1 ; i<next.length;i++){while(j> 0 && s.charAt(i) !=s.charAt(j)){j = next[j-1];}if(s.charAt(i) ==s.charAt(j)) j++;next[i] = j;}return next;}
}
http://www.lryc.cn/news/167818.html

相关文章:

  • Lua脚本
  • vue 封装一个Dialog组件
  • 外包干了2个月,技术退步明显。。。。。
  • python科研作图
  • 视锥体裁剪射线的算法
  • 程序员在线周刊(投稿篇)
  • uniapp——实现聊天室功能——技能提升
  • 脚本:用python实现五子棋
  • Java-华为真题-预定酒店
  • win10 自带虚拟机软件 虚拟CentOS系统
  • 【深度学习】 Python 和 NumPy 系列教程(十):NumPy详解:2、数组操作(索引和切片、形状操作、转置操作、拼接操作)
  • 3D视觉测量:复现Gocator的间隙面差
  • 文献综述怎么写?(以利用Zotero的文献管理软件为例)
  • 中尺度混凝土二维有限元求解——运行弯曲、运行光盘、运行比较、运行半圆形(Matlab代码实现)
  • Python文件存读取
  • SpringBoot整合Easy-ES实现对ES操作
  • 让NPU跑起来迅为RK3588开发板设置交叉编译器
  • yyyy-MM-dd‘T‘HH:mm:ssZ的T是什么意思?为什么要用单引号引着
  • SIT1145AQ收发器芯片CAN FD Passive功能详解(摘自官网)
  • 安卓毕业设计各种app项目,Android毕设设计,Android课程设计,毕业论文
  • c++下的ros通信(cmake的报错问题多)
  • 测试必备 | 测试工程师必知的Linux命令有哪些?
  • 成集云 | 药师帮集成英克ERP接口 | 解决方案
  • ICPC 2022 网络赛 d ( 数位dp + 二分
  • 透视俄乌网络战之二:Conti勒索软件集团(下)
  • 网络安全深入学习第一课——热门框架漏洞(RCE-命令执行)
  • 应用在电子体温计中的国产温度传感芯片
  • JVM 虚拟机 ----> Java 内存模型(JMM)
  • 指针-字符串替换
  • docker 网络(单机环境)