美文网首页
leetcode 1071. 字符串的最大公因子

leetcode 1071. 字符串的最大公因子

作者: fanchuang | 来源:发表于2020-03-14 03:43 被阅读0次

见注释。

class Solution:
    def gcdOfStrings(self, str1: str, str2: str) -> str:
        # 这个最大公约数。如果存在,取值范围一定是 [1, mn+1] 前开后闭。
        if str1 == str2:
            return str1 
        mn, mx = sorted([str1, str2])
        if mn not in mx:
            return "" 

        i = len(mn) + 1
        while i > 0 :
            # 如果此时我已经截取了一段, 那么这段长度占据总长度的多少呢
            # 总长度 = 单位长度 * 多少个单位。
            # 就是用理论上可以等分的结果与实际结果来比较。
            if mn[:i] * int(len(mn) / i) == mn and mx[:i] * int(len(mx) / i) == mx:
                # print(i, mn[:i], len(mn) / i)
                return mn[:i]
            i -= 1
        else:
            return ""

相关文章

网友评论

      本文标题:leetcode 1071. 字符串的最大公因子

      本文链接:https://www.haomeiwen.com/subject/yrmpshtx.html