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

leetcode:字符串的最大公因子

作者: 简书帅气的昵称已被使用 | 来源:发表于2019-06-12 00:06 被阅读0次

    题目

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/greatest-common-divisor-of-strings

    对于字符串 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"
    输出:""

    解法

    func gcdOfStrings(str1 string, str2 string) string {
        var result, shortOne string
    
        string1 := str1 + str2
        string2 := str2 + str1
    
        if string1 != string2 {
            return ""
        }
    
        strLen1 := len(str1)
        strLen2 := len(str2)
    
        var n int
        if strLen1 > strLen2 {
            n = strLen1
            shortOne = str1
        } else {
            n = strLen2
            shortOne = str2
        }
    
        var index int
        for i := n; i >= 1; i-- {
            if strLen1%i == 0 && strLen2%i == 0 {
                index = i
                break
            }
        }
    
        result = string(shortOne[:index])
        return result
    }
    

    相关文章

      网友评论

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

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