编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z
。
答案:
func longestCommonPrefix(strs []string) string {
if len(strs) > 2 {
mid := len(strs) / 2
strArr := []string{longestCommonPrefix(strs[0:mid]), longestCommonPrefix(strs[mid:])}
return longestCommonPrefix(strArr)
} else if len(strs) == 2 {
pre := ""
for _, v := range strs[0] {
pre += string(v)
if !strings.HasPrefix(strs[1], pre) {
if len(pre) >= 2 {
pre = pre[:len(pre)-1]
} else {
pre = ""
}
break
}
}
return pre
} else if len(strs) == 1 {
return strs[0]
}
return ""
}