题目描述:
主要思路:
①:暴力依次判断每一段字符是否可以构成s和t
②:计算st串长度的最大公因子,判断是否可以构成
class Solution {
public:
bool check(string t,string s)
{
string ans="";
while(ans.length()<s.length())
ans+=t;
return ans==s;
}
string gcdOfStrings(string str1, string str2) {
int n=str1.length(),m=str2.length();
string t=str1.substr(0,__gcd(n,m));
if(check(t,str1)&&check(t,str2))
return t;
return "";
}
};
③:判断如果s+t=t+s,则存在最大公因子的子串
class Solution {
public:
string gcdOfStrings(string str1, string str2) {
if(str1+str2==str2+str1)
return str1.substr(0,__gcd(str1.length(),str2.length()));
return "";
}
};