美文网首页
14. Longest Common Prefix

14. Longest Common Prefix

作者: sarto | 来源:发表于2022-03-15 10:53 被阅读0次

    题目

    给定一组字符串,找到这组字符串中的最长公共前缀字符串。

    解析

    两种方式
    第一种,字符串两两比较,依次找出公共前缀。
    第二种,每个字符串取第一个字符
    很明显,大多数情况下,第二种要比第一种效率高,因为可能后边字符串位数不够,导致前边白白比较浪费。
    更一般的,我们可以先得到最短的那个字符串,然后对所有字符串按字符比较。

    伪码

    flag = flags(strs)
    for i<len(flag)
      for j < len(strs)
        if flag[i] != strs[j][i] 
          goto end
    rst = flag[:i]
    

    代码

    func longestCommonPrefix(strs []string) string {
        var Len int = 1<<63-1
        var idx int
        for i:=0; i<len(strs); i++ {
            if len(strs[i]) < Len {
                Len = len(strs[i])
                idx = i
            }
        }
        var flag string = strs[idx]
        
        var min int = 0
        for ;min < Len; min++{
            for i:=0; i< len(strs); i++ {
                if flag[min] != strs[i][min] {
                    goto end
                }
            }
        }
        end:
        return flag[:min]
    }
    

    相关文章

      网友评论

          本文标题:14. Longest Common Prefix

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