目录

重复的子字符串

目录

给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。

示例 1:

输入: s = "abab"
输出: true
解释: 可由子串 "ab" 重复两次构成。

示例 2:

输入: s = "aba"
输出: false

示例 3:

输入: s = "abcabcabcabc"
输出: true
解释: 可由子串 "abc" 重复四次构成。 (或子串 "abcabc" 重复两次构成。)

思路与算法

原s可以由这些小段子串s’组成

s=s′s′s′s′

两个原s相加

s+s=s’s’s’s’ s’s’s’s'

去掉第一个和最后一个s’= s’s’s’ s’s’s’ 其中必然至少还存在一个s,即还存在4个s'

1
2
3
4
5
6
class Solution {
    public boolean repeatedSubstringPattern(String s) {
        String ss = s + s;
        return ss.substring(1, ss.length() - 1).contains(s);
    }
}

作者:力扣官方题解 链接:https://leetcode.cn/problems/repeated-substring-pattern/solutions/386481/zhong-fu-de-zi-zi-fu-chuan-by-leetcode-solution/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

引自:https://leetcode.cn/problems/repeated-substring-pattern/description/