LeetCode14. 最长公共前缀Golang版
1. 问题描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
2. 思路
2.1. 思路1
- 找到最短的字符串
- 根据最短的字符串,暴力求解
2.2. 思路2
3. 代码
3.1. 思路1代码
func longestCommonPrefix(strs []string) string {
if strs == nil || len(strs) == 0 {
return ""
}
if len(strs) == 1 {
return strs[0]
}
str := shortest(strs)
var res string
for i := 0; i < len(str); i++ {
c := str[i]
for j := 0; j < len(strs); j++ {
res = str[0:i]
if strs[j][i] != c {
return res
} else {
res = str[0:i+1]
}
}
}
return res
}
func shortest(strs []string) string {
minLenth := len(strs[0])
minStr := strs[0]
for _, str := range strs {
if len(str) < minLenth {
minStr = str
minLenth = len(str)
}
}
return minStr
}