두 개의 문자열 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;
}
};