题目描述:
对于字符串
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" 输出:""提示:
1 <= str1.length <= 1000
1 <= str2.length <= 1000
str1[i]
和str2[i]
为大写英文字母
算法:
暴力求解
class Solution:
def gcdOfStrings(self, str1: str, str2: str) -> str:
smin = ""
smax = ""
if len(str1) < len(str2):
smin = str1
smax = str2
else:
smin = str2
smax = str1
for i in range(len(smin)):
st = smin[i:]
if self.check(smax, st) and self.check(smin, st):
return st
return ""
def check(self, smax, st):
length = len(smax) // len(st)
for i in range(length+1):
if st * i == smax:
return True
return False