题目分析
需要知道一个性质:如果 str1 和 str2 拼接后等于 str2和 str1 拼接起来的字符串(注意拼接顺序不同),那么一定存在符合条件的字符串 X。
那么str由str1和str2产生,属于他们的子字符串,那么可以求str1和str2长度的最大公因子来获取这个子字符串。
Java代码
public String gcdOfStrings(String str1, String str2) {
if(!(str1+str2).equals(str2+str1)){
return "";
}else{
int len = gcd(str1.length(),str2.length());
return str1.substring(0,len);
}
}
private int gcd(int a,int b) {
if(b==0)
return a;
else
return gcd(b,a%b);
}