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

下载汽车网站制作网站网页设计logo素材

下载汽车网站制作网站,网页设计logo素材,韩国男女做那个视频网站,凌晨三点看的片韩国前言 字符串篇,继续。 记录 二十六【459.重复的子字符串】 一、题目阅读 给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。 示例 1: 输入: s "abab" 输出: true 解释: 可由子串 "ab" 重复两次构成。示例…

前言

字符串篇,继续。
记录 二十六【459.重复的子字符串】


一、题目阅读

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

示例 1:

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

示例 2:

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

示例 3:

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

提示:

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

二、尝试实现

思路

上一篇学到匹配字符串可以用KMP算法,用来查找“文本串”中有没有“模式串”。用到前缀表
乍一看题目,觉得也是匹配的问题,所以用前缀表试一下。
(1)对string s求出next数组。(数组保持原始数值,next[0] == 0)
(2)如果能知道从哪里开始重复就好了,在此之前的长度是x,是最小的重复单元。用size%x ==0,说明满足条件,return true。否则return false。
(3)怎么找规律,找最小重复单元

  • next某个位置等于1,后面的值都递增。发现开始重复的位置next值为1,往后2,3,4……,找next中哪个位置等于0?倒着往前找哪个next等于1?倒着往前找递减,并且终止在1,?这都不全面,有些用例无法通过,实现不了。

所以:获得next数组之后怎么确定最小重复单元呢?这是个关键。


三、代码随想录学习

学习内容

继续二、中的思路,获取到next数组后,学习到:

  • 只需要看next[size-1],最后一位的数值。最长相等前后缀的含义,给出了最小重复单元
  • 图示讲解推理过程。
    在这里插入图片描述
  • size - next[size-1] :最小重复单元的长度,如果size可以除尽,说明返回true;否则返回false。
  • next[size-1] != 0再做减法。

代码实现

class Solution {
public://求前缀表void getNext(int* next,string& s){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[j] == s[i]){j++;}next[i] = j;}return;}bool repeatedSubstringPattern(string s) {int size = s.size();int* next = new int[size]{0};getNext(next,s);if(next[size-1] != 0 &&size%(size-next[size-1]) == 0){	//在next[size-1]!= 0前提下,确定最小重复单元的长度,判断是否整除return true;}else{return false;}}
};

总结

KMP用前缀表找匹配很有用。利用前缀 = 后缀,并且最长的“含义”来找所求。

(欢迎指正,转载标明出处)

http://www.yayakq.cn/news/984133/

相关文章:

  • 有视频做的很好的网站吗织梦做中英文网站步骤
  • 临沂做商城网站国家对小微企业扶持2022政策
  • asp手机网站wordpress 获取路径
  • 迎访问备案网站管理系统做搜狗手机网站优化排
  • 快速生成网站seo排名赚下载
  • 保定网站制作费用表白墙网站怎么做
  • 网站做sem能够提高收录量吗做电商不不得不知道的网站
  • 做网站用的图标国内响应式网站欣赏
  • 个人网站备案 备注企业网站开发费用会计分录
  • 家具网站建设需求东莞网站建设设计
  • 谷歌网站如果用别人公司信息做网站
  • 网站建设龙头企业零六年自助建设网站
  • 深圳企业网站制作哪个一键免费建站
  • 社交媒体 网站画图软件在线
  • 网站建设部app推广一年赚了百万
  • 速度啊网站新东方考研班收费价格表
  • 中国建设银行招投标网站做网站运营工作流程
  • 搭建网站什么意思孩子发烧反反复复不退烧怎么办
  • wordpress金融网站模板深圳 网站
  • 百度站长提交网址做婚庆策划的网站
  • 商城型企业网站的功能网页设计师的发展
  • 设计好的网站推荐wordpress动态添加字段
  • 如皋网站建设触屏手机网站建设
  • 代刷推广网站做简历的网站有
  • 怎么编辑网站代码堵博网站建设
  • 广州做网站报价wordpress和新浪微博同步
  • flash网站代码wordpress中文 apP
  • 如何申请建设网站网站建设公司需要icp证
  • 做电影网站用什么程序做网站需要注册商标第几类
  • 视频网站开发框架做1688网站需要懂英语吗