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

LeetCode:459重复的子字符串

给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。

示例 1:

输入: s = "abab"
输出: true
解释: 可由子串 "ab" 重复两次构成。

示例 2:

输入: s = "aba"
输出: false

示例 3:

输入: s = "abcabcabcabc"
输出: true
解释: 可由子串 "abc" 重复四次构成。 (或子串 "abcabc" 重复两次构成。)

提示:

  • 1 <= s.length <= 104
  • s 由小写英文字母组成

 小技巧:

把next数组求出后,依次嵌套求出所有的重复前后缀,然后从小到大判断,注意不要从大到小,因为绝大多数是小的满足大的绝对满足。

const int N=10010;
class Solution {
public:bool repeatedSubstringPattern(string s) {int ne[N];int n=s.size();for(int i=1,j=-1;i<n;i++){while(j!=-1&&s[i]!=s[j+1]){j=ne[j]-1;}if(s[i]==s[j+1]){j++;}ne[i]=j+1;}if(!ne[n-1]){return false;}else{int o[N];int cnt=0;while(ne[n-1]){o[cnt++]=ne[n-1];ne[n-1]=ne[ne[n-1]-1];}for(int i=cnt-1;~i;i--){int j=0;int k=o[i];bool f=1;for(int l=0;l<n;l++){if(j==k){j=0;}if(s[l]!=s[j++]){f=0;break;}}if(f&&j==k){return true;}}return false;}}
};

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

相关文章:

  • 【含开题报告+文档+PPT+源码】基于SSM的旅游与自然保护平台开发与实现
  • 【ANTs】医疗影像工具ANTs多种安装方式教程
  • 想要音频里的人声,怎么把音频里的人声和音乐分开?
  • python代码中通过pymobiledevice3访问iOS沙盒目录获取app日志
  • Spring AOP 使用方法总结
  • LeetCode 每日一题 2024/10/21-2024/10/27
  • 不到1500元的I卡可以玩转3A大作吗?撼与科技Intel Arc A750显卡游戏性能实
  • STK与MATLAB互联——仿真导航卫星与地面用户间距离和仰角参数
  • js面试问题笔记(一)
  • pip 和 pipx 的主要区别?
  • 4457M数字示波器
  • 【永中软件-注册/登录安全分析报告】
  • Tomcat作为web的优缺点
  • conda虚拟环境中安装cuda方法、遇到的问题
  • 【CPN TOOLS建模学习】设置变迁的属性
  • 一个简单的例子,说明Matrix类的妙用
  • 【C++】类和对象(四):析构函数
  • linux中各目录作用及介绍
  • v4.7版本使用线下付款方式不给管理员发送新订单通知问题修复
  • vue3中mitt和pinia的区别和主要用途,是否有可重合的部分?
  • 飞书文档解除复制限制
  • vue3中ref和reactive的用法,区别和优缺点,以及使用场景
  • 电脑技巧:Rufus——最佳USB启动盘制作工具指南
  • vue的基本使用
  • C#高级:利用 CancellationToken 实现方法超时控制,提升应用响应性
  • Java Lock LockSupport 总结
  • 线性表之链式存储基本操作(c语言实现,附解析)
  • 27.Redis哨兵架构
  • BGP路由优选
  • cjson内存泄漏问题注意事项