14. 最长公共前缀
14. 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入:strs = ["flower","flow","flight"] 输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。
提示:
1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i]
仅由小写英文字母组成
func longestCommonPrefix(strs []string) string { if len(strs) == 0 { return "" } prefix := strs[0] count := len(strs) for i := 1;i < count;i++ { prefix = lcp(prefix,strs[i]) if prefix == "" { return "" } } return prefix } func lcp(str1,str2 string) string { length := min(len(str1),len(str2)) index := 0 for index < length && str1[index] == str2[index] { index++ } return str1[:index] } func min(a,b int) int { if a < b { return a } return b }
解法二(力扣官方解法2):
func longestCommonPrefix(strs []string) string { if len(strs) == 0 { return "" } for i := 0; i < len(strs[0]); i++ { for j := 1; j < len(strs); j++ { if i == len(strs[j]) || strs[j][i] != strs[0][i] { return strs[0][:i] } } } return strs[0] }