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

力扣 459重复的子字符串

思路:

KMP算法的核心是求next数组

next数组代表的是当前字符串最大前后缀的长度

而求重复的子字符串就是求字符串的最大前缀与最大后缀之间的子字符串

如果这个子字符串是字符串长度的约数,则true

/** @lc app=leetcode.cn id=459 lang=cpp** [459] 重复的子字符串*/// @lc code=start
class Solution {
public:void getNext(string s,std::vector<int> &next){next[0] = 0;int j = 0;for(int i = 1;i<s.size();i++){while(j>0 && s[j]!= s[i]) j = next[j-1];if(s[i] == s[j]) j++;next[i] = j;}}bool repeatedSubstringPattern(string s) {//初始化next数组//遍历next数组,统计0出现的次数index,用s.size()-index//如果next数组最后一位是s.size()-index,则true//否则falsestd::vector<int> next(s.size());getNext(s,next);int len = s.size();int longestPre = next[len-1];if(longestPre >0 && len%(len-longestPre) == 0){return true;}return false;}
};
// @lc code=end

http://www.lryc.cn/news/407638.html

相关文章:

  • MyBatis XML配置文件
  • 读写RDS或RData等不同格式的文件,包括CSV和TXT、Excel的常见文件格式,和SPSS、SAS、Stata、Minitab等统计软件的数据文件
  • Android 支持的媒体格式,(二)视频支持格式
  • 密码学原理精解【8】
  • 2024年钉钉杯大数据竞赛A题超详细解题思路+python代码手把手保姆级运行讲解视频+问题一代码分享
  • unity2D游戏开发01项目搭建
  • 删除的视频怎样才能恢复?详尽指南
  • LeetCode160 相交链表
  • 高性能响应式UI部件DevExtreme v24.1.4全新发布
  • Python实现Java mybatis-plus 产生的SQL自动化测试SQL速度和判断SQL是否走索引
  • UDP的报文结构及其注意事项
  • MySQL深度分页问题深度解析与解决方案
  • C#类型基础Part1-值类型与引用类型
  • 被上市公司预判的EPS增速分析
  • 快速入门了解Ajax
  • FPGA开发——呼吸灯的设计
  • 【数据结构】二叉树链式结构——感受递归的暴力美学
  • 开始尝试从0写一个项目--后端(三)
  • 2024年7月解决Docker拉取镜像失败的实用方案,亲测有效
  • 基于内容的音乐推荐网站/基于ssm的音乐推荐系统/基于协同过滤推荐的音乐网站/基于vue的音乐平台
  • STM32智能工业监控系统教程
  • WEB渗透Web突破篇-SQL注入(MYSQL)
  • PDF解锁网站
  • 【Redis】主从复制分析-基础
  • Transformer自然语言处理实战pdf阅读
  • Python 高阶语法
  • 开始尝试从0写一个项目--前端(三)
  • Visual stdio code 运行C项目环境搭建
  • 免杀笔记 -->API的整理Shellcode加密(过DeFender)
  • Stable Diffusion 使用详解(3)---- ControlNet