iis 网站文件被占用,龙华做网站的,东莞外贸公司建网站,网上接单做效果图哪个网站好题目要求#xff1a;给定一个非空的字符串#xff0c;判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母#xff0c;并且长度不超过10000。
思路#xff1a;
一、首先对于暴力解法#xff0c;可以枚举所有的字串进行判断。但是枚举时实际上只需…题目要求给定一个非空的字符串判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母并且长度不超过10000。
思路
一、首先对于暴力解法可以枚举所有的字串进行判断。但是枚举时实际上只需要一次for循环遍历终止位置每次一定从头开始而不需要一个for循环获取起始位置一个for循环获取终止位置而且不用遍历到结束字串结束位置大于中间位置一定不能组成重复字符串。
二、移动匹配方法。如果一个字符串s内部由重复的子串组成那么两个s组成的新字符串中如果中间还能出现一个s则说明时重复子串组成。但是两个s拼接后我们要删除此字符串的首首尾字符这样能确保搜索出的s一定是拼接出来的。代码中find库函数实现为O(mn)
三、KMP算法。在由重复子串组成的字符串中最长相等前后缀不包含的子串就是最小重复子串此处可以自己画图验证
leetcode实战 代码实现