重复的子字符串
题面
给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。
示例 1:
输入: "abab"
输出: True
来源:力扣(LeetCode)
链接:leetcode-cn.com/problems/repeated-...
分析
- 确定可能的子串长度范围,最小为1,最大为给定串的一半
- 给定串长度必为可重复子串长的倍数
- 检测其内,间隔值有任意可重复子串子项不成立则直接终止循环
- 断言有任意考察重复子串通过,则直接跳出
解法
func repeatedSubstringPattern(s string) bool {
if len(s)==1 {
return false
}
gap :=1
rs := false
for gap <= len(s)/2 {
if len(s) % gap == 0{
rs = true
for i:=0;i<len(s)-gap;i++ {
if s[i]!=s[i+gap]{
rs = false
break
}
}
if rs {
break
}
}
gap++
}
return rs
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: