字串的最大公因子
阿新 • • 發佈:2020-12-08
字串的最大公因子
題目描述:
對於字串 S 和 T,只有在 S = T + … + T(T 與自身連線 1 次或多次)時,我們才認定 “T 能除盡 S”。
返回最長字串 X,要求滿足 X 能除盡 str1 且 X 能除盡 str2。
示例1:
輸入:str1 = "ABCABC", str2 = "ABC"
輸出:"ABC"
示例2:
輸入:str1 = "ABABAB", str2 = "ABAB"
輸出:"AB"
示例3:
輸入:str1 = "LEET", str2 = "CODE" 輸出:""
**題解:**如果可以除盡,那麼可以理解為 S為T的n次重複,所以可以判定字串 ‘S’+‘T’ 是否等於 ‘T’+‘S’ 如果 不相等,必然不滿足條件,
最後求最長的可以分別被 str1 和str2除盡的字串,只需要求兩個字串長度的最大公因數即可,這裡使用C++自帶庫函式gcd(_)
class Solution {
public:
string gcdOfStrings(string str1, string str2) {
string str_1=str1+str2;
string str_2=str2+str1;
if(str_1!= str_2)return "";
else return str1.substr(0,gcd((int)str1.length(),(int)str2.length()));
}
};