最长公共前缀
最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
提示:
- 0 <= strs.length <= 200
- 0 <= strs[i].length <= 200
- strs[i] 仅由小写英文字母组成
答案
func longestCommonPrefix(strs []string) string {
switch len(strs){
case 0:
return ""
case 1:
return strs[0]
}
// 找到最短的字符串作为基准
tag := func(strs []string)string{
s1 := ""
for _, s := range strs{
if s == ""{
return ""
}
if s1 == "" || len(s) < len(s1){
s1 = s
}
}
return s1
}(strs)
var s string
for i := 0; i < len(tag); i ++ {
// 定义基准的指定长度作为返回值
s = tag[0:len(tag)-i]
// 遍历切片中的每个元素,与s进行比较
for _, str := range strs{
if s != str[0:len(s)]{
s = ""
break
}
}
if s != ""{
return s
}
}
return s
}