问题
对于字符串 S 和 T,只有在 S = T + … + T(T 与自身连接 1 次或多次)时,我们才认定 “T 能除尽 S”。
返回字符串 X,要求满足 X 能除尽 str1 且 X 能除尽 str2。
思路
比较暴力的去破解,先计算长度是否是公约数,从最大的公约数开始,然后计算str是否能够整除,
每一次计算,都删除这一部分,如果中途有失败,就continue至外层循环的下一轮,如果没有失败,就赋值给res,然后跳出,输出res。
时间
3ms
代码
class Solution {
public String gcdOfStrings(String str1, String str2) {
int min=Math.min(str1.length(),str2.length());
String s1=str1;
String s2=str2;
int len1=str1.length();
int len2=str2.length();
String res="";
String temp="";
OUTER:
for(int i=min;i>=1;i--){
if(len1%i==0&&len2%i==0){
temp=s1.substring(0,i);
while(s1.length()!=0||s2.length()!=0){
if(s1.length()!=0){
if(!s1.substring(0,i).equals(temp)){
continue OUTER;
}
}
if(s2.length()!=0){
if(!s2.substring(0,i).equals(temp)){
continue OUTER;
}
}
s1=(i<s1.length())?s1.substring(i):"";
s2=(i<s2.length())?s2.substring(i):"";
}
res=temp;
break;
}
s1=str1;
s2=str2;
}
return res;
}
}