最长公共前缀

2020-03-15  本文已影响0人  韩小禹
package main

import "fmt"

func LongestCommonPrefix(strArr []string) string {
    arrLen := len(strArr)
    if arrLen == 0 {
        return ""
    }
    //先找出数组中最短的那个字符串,因为最长公共前缀的长度一定是小于或者等于最短的那个字符串的长度
    shortStr := strArr[0]
    for x := 1; x < arrLen; x++ {
        if len(strArr[x]) < len(shortStr) {
            shortStr = strArr[x]
        }
    }
    //然后根据最短字符串的个数遍历
    for k, v := range shortStr {
        for j := 0; j < arrLen; j++ {
            if strArr[j][k] != byte(v) {
                return string(strArr[j][:k])
            }
        }
    }
    return shortStr
}

func main() {
    str := []string{"flower", "flow", "flight", "f"}
    res := LongestCommonPrefix(str)
    fmt.Println(res)
}
上一篇 下一篇

猜你喜欢

热点阅读