Bootstrap

459. 重复的子字符串【力扣】

在这里插入图片描述

class Solution {
public:
    void getNext(int *next,string s){
        int j=0;
        next[0]=0;
        for(int i=1;i<s.size();i++){
            while(j>0 && s[i]!=s[j]){
                j=next[j-1];
            }
            if(s[i]==s[j]) j++;
            next[i]=j;
        }

    }
    bool repeatedSubstringPattern(string s) {
        if(s.size()==0) return false;
        int next[s.size()];
        getNext(next,s);
        if(next[s.size()-1]!=0 && s.size()%(s.size()-next[s.size()-1])==0){
            return true;
        }
        return false;
    }
        // 若 s="abcabcabc",则next[]=[0,0,0,1,2,3,4,5,6]
        // next数组记录的时相同字符串的长度
};

459. 重复的子字符串【力扣】

;