思路
枚举法
从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;
}
};