给出两个字符串,求他们的最长公共子串,并且两个字符串都是由这一公共子串重复若干次构成。
水题,从两个字符串中较短的一个的长度l开始枚举,l~1
1 #1071
2 #Runtime: 21 ms (Beats 73.53%)
3 #Memory: 13.6 MB (Beats 30.88%)
4
5 class Solution(object):
6 def gcdOfStrings(self, str1, str2):
7 """
8 :type str1: str
9 :type str2: str
10 :rtype: str
11 """
12 for s_len in range(1 + min(len(str1), len(str2)), 0, -1):
13 if len(str1) % s_len != 0 or len(str2) % s_len:
14 continue
15 ss1 = str1[0:s_len] * (len(str1) // s_len)
16 ss2 = str1[0:s_len] * (len(str2) // s_len)
17 if ss1 == str1 and ss2 == str2:
18 return str1[0:s_len]
19 return ""