【leetcode】1071. Greatest Common Divisor of Strings
题目如下:
For strings
S
andT
, we say "T
dividesS
" if and only ifS = T + ... + T
(T
concatenated with itself 1 or more times)Return the largest string
X
such thatX
divides str1 andX
divides str2.
Example 1:
Input: str1 = "ABCABC", str2 = "ABC" Output: "ABC"
Example 2:
Input: str1 = "ABABAB", str2 = "ABAB" Output: "AB"
Example 3:
Input: str1 = "LEET", str2 = "CODE" Output: ""
Note:
1 <= str1.length <= 1000
1 <= str2.length <= 1000
str1[i]
andstr2[i]
are English uppercase letters.
解题思路:题目比较简单,依次判断str1[0:i]是否满足条件即可。
代码如下:
class Solution(object): def gcdOfStrings(self, str1, str2): """ :type str1: str :type str2: str :rtype: str """ for i in range(len(str1),0,-1): if len(str1) % i == 0 and len(str2) % i == 0 and \ str1[:i] * (len(str1) / i ) == str1 and str1[:i] * (len(str2) / i ) == str2: return str1[:i] return ''