class Solution {
public:
unordered_set<string> s;
bool checkPattern(string& str, string& pattern) {
int pattern_size = pattern.size();
int count = 0;
int j = 0;
for(; j < str.size(); j++) {
if(str[j] != pattern[count]) {
break;
}
count = (count + 1)%pattern_size;
}
return j == str.size() && count == 0;
}
string findPattern(string &str) {
string min_pattern = "";
string pattern = "";
for(int i = 0; i < str.size(); i++) {
pattern.push_back(str[i]);
if(checkPattern(str, pattern)) {
if(min_pattern.size() < 1) {
min_pattern = pattern;
}
s.insert(pattern);
}
}
return min_pattern;
}
string gcdOfStrings(string str1, string str2) {
if(str1.size() < str2.size()) {
swap(str1, str2);
}
string pattern = findPattern(str2);
string answer = "";
string tmp_pattern = pattern;
while(tmp_pattern.size() <= str2.size()) {
if(auto it = s.find(tmp_pattern); it != s.end() && checkPattern(str1, tmp_pattern)) {
answer = tmp_pattern;
}
tmp_pattern += pattern;
}
return answer;
}
};
나는 멍청이야 ㅜ
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.