LeetCode 459. 重复的子字符串
题目描述
思路分析
方案二:字符串拼接技巧
将
s
拼接成s + s
,并去掉首尾字符,看是否包含原字符串s
本身。原理是:若字符串是由子串重复构成的,那么拼接后的字符串中间一定包含原字符串本身。
参考代码
1
2
3
4
5
func repeatedSubstringPattern(s string) bool {
doubled := s + s
// 去掉首尾字符后检查是否包含原字符串
return strings.Contains(doubled[1:len(doubled)-1], s)
}
- 时间复杂度:O (n)
- 空间复杂度:O (n)
1
write your code here
CC BY-NC-SA 4.0
许可协议,转载请注明出处!
本博客所有文章除特别声明外,均采用