求字符串的最大公因子
题目中要求的是整除,因此,两个字符串的和应该是某个小子串的整数倍,与两个字符串相加位置无关,因此如果有解,str1 + str2 == str2 + str1,而最大公共子串的长度应该是两个字符串长度的最大公因子,故使用gcd算法求长度公因子,再由公因子子串的长度在原始字符串中截取
class Solution {
public String gcdOfStrings(String str1, String str2) {
String s1 = str1 + str2;
String s2 = str2 + str1;
int en = 0;
if(s1.equals(s2)){
en = gcd(str1.length(),str2.length());
return str1.substring(0,en);
}
return "";
}
public int gcd(int a,int b){
if(b == 0)
return a;
else
return gcd(b,a%b);
}
}