題面
給定一個非空的字串,判斷它是否可以由它的一個子串重複多次構成。給定的字串只含有小寫英文字母,並且長度不超過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 協議》,轉載必須註明作者和本文連結