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

Java | Leetcode Java题解之第459题重复的子字符串

题目:

题解:

class Solution {public boolean repeatedSubstringPattern(String s) {return kmp(s + s, s);}public boolean kmp(String query, String pattern) {int n = query.length();int m = pattern.length();int[] fail = new int[m];Arrays.fill(fail, -1);for (int i = 1; i < m; ++i) {int j = fail[i - 1];while (j != -1 && pattern.charAt(j + 1) != pattern.charAt(i)) {j = fail[j];}if (pattern.charAt(j + 1) == pattern.charAt(i)) {fail[i] = j + 1;}}int match = -1;for (int i = 1; i < n - 1; ++i) {while (match != -1 && pattern.charAt(match + 1) != query.charAt(i)) {match = fail[match];}if (pattern.charAt(match + 1) == query.charAt(i)) {++match;if (match == m - 1) {return true;}}}return false;}
}
http://www.lryc.cn/news/456225.html

相关文章:

  • 【动态规划-最长公共子序列(LCS)】【hard】力扣1092. 最短公共超序列
  • ‌图片编辑为底片,智能工具助力,创作精彩视觉作品
  • 机器学习/数据分析--用通俗语言讲解时间序列自回归(AR)模型,并用其预测天气,拟合度98%+
  • 回溯算法之值子集和问题详细解读(附带Java代码解读)
  • mysql游标的使用
  • linux udev详解
  • EventSource和websocket该用哪种技术
  • 通信工程学习:什么是三网融合
  • 自定义类型结构体(上)
  • b站-湖科大教书匠】4 网络层 - 计算机网络微课堂
  • 国际 Android WPS Office v18.13 解锁版
  • 【中间件学习】Git的命令和企业级开发
  • FTP连接池与多线程FTP上传下载算法(Java)
  • Spring Cloud微服务详解
  • QT学习笔记1.2(QT的应用)
  • 数学建模算法与应用 第1章 线性规划
  • 使用 systemd 设置 PHP 程序为服务
  • HRNET模型实现钢板表面缺陷检测
  • 28 基于51单片机的两路电压检测(ADC0808)
  • SpringBootTest Mockito 虚实结合编写测试
  • 国内外网络安全政策动态(2024年9月)
  • 使用Android studio进行Unit Test中遇到的问题记录
  • 智能运维与问题诊断工具:提升生产环境的安全稳定性
  • 【MAUI】CommunityToolkit社区工具包介绍
  • 【答疑解惑】图文深入详解undo和redo的区别及其底层逻辑
  • 低通滤波、反相放大器电路
  • SpringBoot助力服装生产流程优化
  • 【机器学习】线性回归算法简介 及 数学实现方法
  • 设计模式的学习
  • wordpress发邮件SMTP服务器配置步骤指南?