14-最长公共前缀(Go)

15 阅读1分钟

题目

题目来源Leetcode第14题

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""

示例 1:

输入: strs = ["flower","flow","flight"]
输出: "fl"

示例 2:

输入: strs = ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。

我的代码

func longestCommonPrefix(strs []string) string {
    a := []byte{}
    b := len(strs)

    // 当仅仅存在一个字符时,直接返回该字符
    if b == 1 {
        return strs[0]
    }

    for i:=0;i<len(strs[0]);i++{
        c := strs[0][i]
        for j:=1;j<b;j++ {
            // 如果该string的长度小于i,那么可以直接返回
            if len(strs[j]) <= i {
                 return string(a)
            }
            // 如果不等于统一字符,也可以直接直接返回
            if strs[j][i]!=c{
                return string(a)
            }

            // 如果遍历到string数组的最后一个元素,仍符合条件,那么将该字符添加到返回的数组中
            if j==b-1 {
                a = append(a,c)
            }
        }
    }
    return string(a)
}