美文网首页
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