Uriel's Corner

Research Associate @ Harvard University / Research Interests: Computer Vision, Biomedical Image Analysis, Machine Learning
posts - 0, comments - 50, trackbacks - 0, articles - 594
给出两个字符串,求他们的最长公共子串,并且两个字符串都是由这一公共子串重复若干次构成。
水题,从两个字符串中较短的一个的长度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 ""

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理