美文网首页
leetcode每日一题 python解法 3月12日

leetcode每日一题 python解法 3月12日

作者: Never肥宅 | 来源:发表于2020-03-12 00:16 被阅读0次

    难度:简单

    题目内容:

    对于字符串 S 和 T,只有在 S = T + ... + T(T 与自身连接 1 次或多次)时,我们才认定 “T 能除尽 S”。

    返回最长字符串 X,要求满足 X 能除尽 str1 且 X 能除尽 str2。

    示例 1:

    输入:str1 = "ABCABC", str2 = "ABC"
    输出:"ABC"
    示例 2:

    输入:str1 = "ABABAB", str2 = "ABAB"
    输出:"AB"
    示例 3:

    输入:str1 = "LEET", str2 = "CODE"
    输出:""

    提示:

    1 <= str1.length <= 1000
    1 <= str2.length <= 1000
    str1[i] 和 str2[i] 为大写英文字母

    题解:

    这个自身链接就是两个字符串共有的子字符串
    可以从小的开始,截成n、(n-1)。。。。。。1段,依次看能不能被长字符串整除
    就附上一个简单的答案吧,虽然效果不太好,能用

    class Solution:
        def gcdOfStrings(self, str1: str, str2: str) -> str:
            if len(str1) > len(str2):
                return self.commonSon(str1,str2)
            else:
                return self.commonSon(str2,str1)
    
        def commonSon(self,longStr,shortStr):
            r = ""
            for i in range(1,len(shortStr)+1):
                if self.canDivide(shortStr,shortStr[0:i]) and self.canDivide(longStr,shortStr[0:i]):
                    if i > len(r):
                        r = shortStr[0:i]
            return r
        
        def canDivide(self,string,x):
            xlen = len(x)
            slen = len(string)
            if not (slen % xlen == 0):
                return False
            else:
                if x*int(slen/xlen) == string:
                    return True
                else:
                    return False
    
    

    相关文章

      网友评论

          本文标题:leetcode每日一题 python解法 3月12日

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