PS/PS Log

23.08.21. 풀었던 문제들 복기

hyelie 2023. 8. 21. 17:37

Leetcode 459. Repeated Substring Pattern, 15분

 주어진 대로 구현만 하면 되는 문제.

 일단 substring으로 원 string을 표시하기 위해서는 substring의 길이가 s의 약수여야 한다. 만약 그렇다면, 해당 substring을 q개(s.length()/substr.length())만큼 만들어서 전체를 살펴보면 된다.

// Runtime 19 ms Beats 64.17%
// Memory 15.4 MB Beats 38.41%

class Solution {
public:
    bool repeatedSubstringPattern(string s) {
        int len = s.length();
        for(int i = 0; i<len/2; i++){
            if(len % (i+1) == 0){
                string substr = s.substr(0, i+1);
                bool repeated = true;
                for(int q = 1; q<len/(i+1); q++){
                    if(s.substr(q*(i+1), i+1) != substr) {
                        repeated = false;
                        break;
                    }
                }
                if(repeated) return true;
            }
        }
        return false;
    }
};