Leetcode 459. 重复的子字符串

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

示例 1:

输入: s = “abab”
输出: true
解释: 可由子串 “ab” 重复两次构成。
示例 2:

输入: s = “aba”
输出: false
示例 3:

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

提示:

1 <= s.length <= 104
s 由小写英文字母组成

class Solution {
public:
    bool repeatedSubstringPattern(string s) {
        bool res = false;
        for(int i = 1; i <= s.size() / 2; i ++ ) {
            string a = s.substr(0, i);
            if(s.size() % i != 0) continue;
            int j = 0;
            for( ; j < s.size(); j += i ) {
                if(a == s.substr(j, i)) continue;
                else
                    break;
            }
            if(j == s.size()) {
                res = true;
                break;
            }
        }
        return res;
    }
};

KMP 做法:

class Solution {
public:
    bool repeatedSubstringPattern(string s) {
        // KMP 做法,朴素做法在CSDN
        int n = s.size();
        s = " " + s;
        vector<int> next(n + 1);
        for(int i = 2, j = 0; i <= n; i ++ ) {
            while(j && s[i] != s[j + 1]) j = next[j];
            if(s[i] == s[j + 1]) j ++;
            next[i] = j;
        }
        int t = n - next[n];
        return t < n && n % t == 0;
    }
};

最近更新

  1. TCP协议是安全的吗?

    2024-04-09 16:38:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-09 16:38:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-09 16:38:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-09 16:38:02       18 阅读

热门阅读

  1. Qt状态机

    2024-04-09 16:38:02       11 阅读
  2. 文心一言 vs. GPT-4: 全面比较

    2024-04-09 16:38:02       13 阅读
  3. gcc/g++:编译阶段翻译成优化的平台汇编代码

    2024-04-09 16:38:02       11 阅读
  4. 背包问题四种类型

    2024-04-09 16:38:02       10 阅读
  5. Vue.js中如何使用Vue Router处理浏览器返回键的功能

    2024-04-09 16:38:02       10 阅读
  6. 设计模式概述

    2024-04-09 16:38:02       16 阅读
  7. 状态机编程的常用框架和方法

    2024-04-09 16:38:02       7 阅读
  8. loopvar 改动不同版本的影响-defer,closures

    2024-04-09 16:38:02       12 阅读
  9. 李沐20_卷积层里的填充和步幅——自学笔记

    2024-04-09 16:38:02       12 阅读
  10. macOS MySQL环境配置

    2024-04-09 16:38:02       11 阅读
  11. C语言-翁恺-PTA-81-120课后练习题-03

    2024-04-09 16:38:02       12 阅读