题目
-
对于字符串 s 和 t,只有在 s = t + … + t(t 自身连接 1 次或多次)时,我们才认定 “t 能除尽 s”。
给定两个字符串 str1 和 str2 。返回 最长字符串 x,要求满足 x 能除尽 str1 且 x 能除尽 str2 。示例 1:
输入:str1 = “ABCABC”, str2 = “ABC”
输出:“ABC”示例 2:
输入:str1 = “ABABAB”, str2 = “ABAB”
输出:“AB”示例 3:
输入:str1 = “LEET”, str2 = “CODE”
输出:“”
解答
class Solution {
public:
string gcdOfStrings(string str1, string str2) {
int str1_size = str1.size();
int str2_size = str2.size();
if (str1_size >= str2_size) {
string result = str1.substr(str1_size - str2_size,str2_size);
if (result == str2) {
if (str1_size == str2_size) {
return str1;
}
return gcdOfStrings(str1.substr(0,str1_size - str2_size),str1);
} else {
return "";
}
} else {
if (str1 == str2.substr(str2_size - str1_size,str1_size)) {
return gcdOfStrings(str2.substr(0,str2_size - str1_size),str1);
} else {
return "";
}
}
return "";
}
};