LeetCode-459. 重复的子字符串(Goland实现)
LeetCode题号:459. 重复的子字符串
题目描述:
给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。
示例 1:
- 输入: “abab”
- 输出: True
- 解释: 可由子字符串 “ab” 重复两次构成。
示例 2:
- 输入: “aba”
- 输出: False
解题思路:
最先想到的就是暴力破解,定义一个子串,子串先取全串的第一个字母开始,接着拿子串去匹配全串,如果子串递增到跟全串一样,则返回false,不满题意,如果子串全部匹配成功,则返回true ,子串依次递增。
func repeatedSubstringPattern(s string) bool {
//子串
var str1 string
//子串长度
var strLen int
//全串长度
var l = len(s)
for i := 1; i <= l; i++ {
str1 = s[0:i]
strLen = len(str1)
//若子串跟全串一样,直接返回false
if len(str1) == len(s) {
return false
}
//根据子串去匹配全串是否全部由子串组成
for j := 0; j <= l-strLen; j+=strLen{
//按子串str1长度从全串中取得str2
str2 := s[j : j+strLen]
//若str2不匹配,直接跳出匹配循环
if str1 != str2 {
break
}
//表示子串全部匹配成功,则一定会执行返回true
if j == l-strLen{
return true
}
}
}
return false
}
❤如果文章对您有所帮助,就在文章的右上角或者文章的末尾点个赞吧!(づ ̄ 3 ̄)づ
❤如果喜欢大白兔分享的文章,就给大白兔点个关注吧!(๑′ᴗ‵๑)づ╭❤~
❤对文章有任何问题欢迎小伙伴们下方留言或者入群探讨【群号:708072830】
❤鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复讨论(请勿发表攻击言论)
还没有评论,来说两句吧...