列表

详情


459. 重复的子字符串

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

 

示例 1:

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

示例 2:

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

示例 3:

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

 

提示:

相似题目

实现 strStr()

重复叠加字符串匹配

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: bool repeatedSubstringPattern(string s) { } };

python3 解法, 执行用时: 40 ms, 内存消耗: 14.9 MB, 提交时间: 2022-08-10 16:13:41

class Solution:
    def repeatedSubstringPattern(self, s: str) -> bool:
        n = len(s)
        if n < 2:
            return False

        for repeat in range(2, n+1, 1):
            if n % repeat == 0 and s == s[0:n//repeat] * repeat:
                return True
        return False

golang 解法, 执行用时: 4 ms, 内存消耗: 6.6 MB, 提交时间: 2021-06-18 11:12:32

func repeatedSubstringPattern(s string) bool {
    n := len(s)
    if n < 2 {
        return false
    }


    for repeat := 2; repeat <= n; repeat++ {
        if n % repeat == 0 && s == strings.Repeat(s[0:n/repeat], repeat) {
            return true
        }
    }
    return false
}

上一题