LeetCode 459. 重复的子字符串

题目描述

459. 重复的子字符串

image-20230311200912538

思路分析

方案二:字符串拼接技巧

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)

➡️ 点击查看 Java 题解

1
write your code here
本文作者:
本文链接: https://hgnulb.github.io/blog/2025/36043259
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!