public static String gcdOfStrings(String str1, String str2) {
if (!(str1 + str2).endsWith(str2 + str1 ))
return "";
else {
int startSubLen = maxFactor(str1.length(), str2.length());
return str1.substring(0,startSubLen);
}
}
private static int maxFactor(int a,int b){
return a%b==0?b:maxFactor(b,a%b);
}
此题需要使用辗转相除法,否则可能会造成栈溢出