首页 > 其他分享 >代码随想录Day10

代码随想录Day10

时间:2022-10-25 11:12:27浏览次数:43  
标签:子串 示例 重复 代码 随想录 Day10 字符串 构成

LeetCode 459重复字符串

给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。

示例 1:
输入: "abab"
输出: True
解释: 可由子字符串 "ab" 重复两次构成。

示例 2:
输入: "aba"
输出: False

示例 3:
输入: "abcabcabcabc"
输出: True
解释: 可由子字符串 "abc" 重复四次构成。 (或者子字符串 "abcabc" 重复两次构成。)

 

思想:

暴力解法: 

就是一个for循环获取 子串的终止位置, 然后判断子串是否能重复构成字符串,又嵌套一个for循环,所以是O(n^2)的时间复杂度。

子串的开始位置位于第一个元素的位置,且子串的长度不能大于字符串长度的一半,大于一半肯定是不可以。

移动匹配法:

由于字符串如果是重复之后得到的,那么前半部分+后半部分=完整字符串。

所以  S(减前半部分)+S(减后半部分) =  S   就说明是由于重复字符串组成。

KMP算法:

 

标签:子串,示例,重复,代码,随想录,Day10,字符串,构成
From: https://www.cnblogs.com/dwj-ngu/p/16824209.html

相关文章

  • C#HTTP请求服务端客户端代码实现(转发)
    一、文件流方式(转自:http://blog.csdn.net/u011511086/article/details/53216330)///发送请求    ///</summary>    ///<paramname="url">请求地址</pa......
  • 统计图像对比对、饱和度、亮度代码
    importcv2importosimportnumpyasnppath_dir="/data_1/everyday/20221014/pic/18-19-20/"list_img=os.listdir(path_dir)cnt=0contrast=0brightness=......
  • 代码随想录day24
    77.组合解题步骤:  1、确定回溯函数参数及返回值;        vector<vector<int>> result;        vector<int> path;        void back......
  • 神了,程序员放弃写代码,直接用SQL写逻辑,你废吗?
    ......
  • 代码随想录Day9 KMP算法
    LeetCode 剑指offer 58 左旋转字符串字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符......
  • 《代码大全2》——读后感2
    本次读后感写于阅读完《代码大全2》第三章和第四章。一、三思而后行:前期准备1)准备工作的核心目标就是降低风险,改进需求分析与项目规划。前期工作:项目规划,创作案例,分析需......
  • 《代码大全》笔记第四篇
       第四部分:语句这一部分主要分为五个部分:组织直线型代码、使用条件语句、控制循环、不常见的控制结构、表驱动法一般控制问题。主要表现是......
  • 《代码大全》笔记第三篇
     第三部分:变量这一部分主要分为四部分:使用变量的一般事项、变量名的力量、基本数据类型、不常见的数据类型。主要是在代码层面上的优化建议......
  • 看代码的技巧 要将线性的代码转换成结构性的代码
    函数中代码的结构,三个循环结构嵌套一个分支结构就是我们在看分支结构的时候,习惯了将分支结构看成一个线性的结构,也就是顺序结构,虽然执行顺序上类似线性结构,但是我们......
  • c语言冒泡排序法代码(c语言冒泡排序法代码讲解)
    求一个C语言冒泡排序法的简单程序怎么办?  下一趟排序开始时,R[1。。lastExchange-1]是有序区,R[lastExchange。。n]是无序区。这样,一趟排序可能使当前有序区扩充多个记录,从......