编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 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 {
if len(strs)==0 {
return ""
}
if len(strs)==1 {
return strs[0]
}
var i int
for i=0; i<len(strs[0]); i++ {
for j:=1; j<len(strs); j++ {
if i>=len(strs[j]) || strs[0][i] != strs[j][i] {
return strs[0][0:i]
}
}
}
return strs[0][0:i]
}
利用sort函数排序,比较最大的一项和最小的一项
func longestCommonPrefix(strs []string) string {
if len(strs)==0 {
return ""
}
if len(strs)==1 {
return strs[0]
}
sort.Strings(strs)
first := strs[0]
last := strs[len(strs)-1]
var i int
for i=0; i<len(first)&&i<len(last); i++ {
if first[i] != last[i] {
return first[:i]
}
}
return first[:i]
}