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

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.kler.cn/a/370616.html

相关文章:

  • postcss插件-实现vw适配
  • PyTorch DAY2: 搭建神经网络
  • Lora理解QLoRA
  • XML序列化和反序列化的学习
  • 2019-Android-高级面试题总结-从java语言到AIDL使用与原理
  • 网络科技有限公司网络设计
  • 数据结构 - 图
  • VINS-MONO学习笔记-手动添加ZUPT
  • 《近似线性可分支持向量机的原理推导》 对偶问题 公式解析
  • 基础知识 表达式 C语言
  • 操作系统学习笔记2.2调度
  • 模型其他压缩方法
  • 前端 eslint 配置,以及在git提交之前自动format
  • Day20 数据结构
  • Python从入门到高手7.3节-列表的常用操作方法
  • 【2024工业3D异常检测文献】LSFA: 面向三维工业异常检测的自监督特征适配
  • Xcode文件默认存储位置-使用c++file保存文件默认路径以及设置为路径为当前项目路径
  • Python 深度学习简单介绍
  • Java表单提交:轻松实现与PHP和Python相同的简便性
  • 力扣刷题(sql)--零散知识点(2)
  • linux系统操作教程小白学习
  • 大数据之Kafka集群的安装部署
  • mysql 十把锁之《小猫钓鱼》
  • 踩坑:关于使用ceph pg repair引发的业务阻塞
  • 【MATLAB源码-第187期】基于matlab的人工蜂群优化算法(ABC)机器人栅格路径规划,输出做短路径图和适应度曲线。
  • js 实现自定义打印模板