思路
枚舉法
從1~min(str1.length(), str2.length())
的範圍枚舉每個子串,對每個子串進行check,判斷其是否屬於將等於該字符串
代碼
class Solution {
public:
string gcdOfStrings(string str1, string str2) {
if (str1.empty() || str2.empty()) return "";
for (int i = min(str1.length(), str2.length()); i > 0; i--)
{
if (str1.length() % i == 0 && str2.length() % i == 0)
{
string temp = str1.substr(0, i);
if (check(temp, str1) && check(temp, str2)) {
return temp;
}
}
}
return "";
}
bool check(string temp, string str) {
int count = str.size() / temp.size();
string x = "";
for (int i = 0; i < count; i++)
{
x += temp;
}
return x==str;
}
};