最长公共前缀

最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""。

示例 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
}
原文地址:https://www.cnblogs.com/huiyichanmian/p/14340372.html