1. 程式人生 > 其它 >字串的最大公因子

字串的最大公因子

技術標籤:力扣leetcode字串

字串的最大公因子

題目描述:

對於字串 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())); } };