하나, 제목 설명
对于字符串 S 和 T,只有在 S = T + ... + T(T 与自身连接 1 次或多次)时,我们才认定 “T 能除尽 S”。
返回最长字符串 X,要求满足 X 能除尽 str1 且 X 能除尽 str2。
输入:str1 = "ABCABC", str2 = "ABC"
输出:"ABC"
둘째, 문제 해결 방법
방법 1 : GCD
GCD는 : 정수의 수를 X 경우, x는 나눌 수 있습니다 경우 모두 A와 B는 다음 x는 최대 공약수의 A, B이다.
문자열의 경우 : X는 A, B는 동시 나눌 될 수 있다면 ;
이들이 공통 요소 AB 및있는 경우 또한, S1은 다음 m은 "AB"인, S2는 N "AB"는 일 "AB"를 함께 넣어 m + N이다.
간단하게 마지막 문자열 또는 b 길이의 최대 공약수로 돌아갑니다.
public String gcdOfStrings(String s1, String s2) {
if (s1 == null || s2 == null) {
return null;
} else if (!(s1 + s2).equals(s2 + s1)) {
return "";
}
return s1.substring(0, gcd(s1.length(), s2.length()));
}
int gcd (int a, int b) {
if (a == 0 || b == 0)
return a == 0 ? b : a;
return gcd(b, a % b);
}
복잡도 분석
- 시간 복잡성 : ,
- 우주의 복잡성 : ,