<h3><a title="题目描述" href="https://leetcode-cn.com/problems/repeated-substring-pattern/">题目描述</a></h3>
![file](https://i.loli.net/2020/08/24/HjvR7dh2MbWXYp4.png)
<h4>方法一</h4>
<pre class="EnlighterJSRAW" data-enlighter-language="python">class Solution:
def repeatedSubstringPattern(self, s: str) -> bool:
return s in (s+s)[1:-1]
</pre>
<p> </p>
## 思路:
正统解法[(可参考官方题解)](https://leetcode-cn.com/problems/repeated-substring-pattern/solution/zhong-fu-de-zi-zi-fu-chuan-by-leetcode-solution/ "(可参考官方题解)"):
- 模拟
- 字符串匹配
- KMP
本次解法思路:
假设 s 可由 子串 x 重复 n 次构成,即 s = nx
则有 s+s = 2nx
移除 s+s 开头和结尾的字符,变为 (s+s)[1:-1],则破坏了开头和结尾的子串 x
此时只剩 2n-2 个子串
若 s 在 (s+s)[1:-1] 中,则有 2n-2 >= n,即 n >= 2
即 s 至少可由 x 重复 2 次构成
否则,n < 2,n 为整数,只能取 1,说明 s 不能由其子串重复多次构成
Leetcode459 重复的子字符串