題目描述
對於字符串 S 和 T,只有在 S = T + … + T(T 與自身連接 1 次或多次)時,我們才認定 “T 能除盡 S”。
返回最長字符串 X,要求滿足 X 能除盡 str1 且 X 能除盡 str2。
class Solution:
def gcdOfStrings(self, str1: str, str2: str) -> str:
算法思路
羞愧,真的跟大佬差很遠。
if str1+str2!=str2+str1:return ''
判斷str1,str2是否有共同的公因子。
然後通過輾轉相除法,得到兩個字符串的最大公因子長度。
return str1[0:self.gcd(len(str1),len(str2))]
輾轉相除法:
def gcd(self,a,b):
return a if b==0 else self.gcd(b,a%b)