【leetcode】1071. Greatest Common Divisor of Strings

题目如下:

For strings S and T, we say "T divides S" if and only if S = T + ... + T  (T concatenated with itself 1 or more times)

Return the largest string X such that X divides str1 and X 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. 1 <= str1.length <= 1000
  2. 1 <= str2.length <= 1000
  3. str1[i] and str2[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 ''

猜你喜欢

转载自www.cnblogs.com/seyjs/p/10996180.html