Greatest Common Divisor of Strings

ㅋㅋ·2023년 2월 1일

알고리즘-leetcode

목록 보기
102/135

두 개의 문자열 str1과 str2를 받는데,

문제는 두 문자열이 공통적으로 가지며 반복되는 문자열 중 가장 긴 문자열을 구하는 것이다.

class Solution {
public:
    string gcdOfStrings(string str1, string str2) {
        
        unordered_set<string> hash{};

        string& shortString = str1;
        string& longString = str2;

        if (str2.size() < str1.size())
        {
            swap(shortString, longString);
        }

        string result{};
        string subString{};
        for (char& c : shortString)
        {
            subString += c;

            if (longString.size() % subString.size() != 0
            || shortString.size() % subString.size() != 0)
            {
                continue;
            }

            if (subString + longString == longString + subString 
            && subString + shortString == shortString + subString)
            {
                result = subString;
            }
        }
        
        return result;
    }
};

0개의 댓글