14. 最长公共前缀

14. 最长公共前缀

难度简单1334收藏分享切换为英文接收动态反馈

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

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

示例 1:

输入: ["flower","flow","flight"]
输出: "fl"

示例 2:

输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。

说明:

所有输入只包含小写字母 a-z

题解:

func longestCommonPrefix(strs []string) string {
	//查看空串的情况
    if len(strs) ==0{
		return ""
	}
    //把第一个字符串作为基准字符串
	var prefix string
	prefix = strs[0]
    //测试,字符串数组的第二个串开始(因为第一个串肯定是它本身的子串)
    for _,strs_ :=range strs[1:]{
        // 一直循环直到基准串为此次串的子串为止(空串也算字串?)
		for strings.Index(strs_,prefix) !=0 {
			//基准串被减为空串,返回空串
            if len(prefix) == 0{
				return ""
			}
            //基准串不是其他串的子串减去末尾的一个字符
            //eg:abcd->abc
			prefix = prefix[:len(prefix)-1]
		}
	}

	return prefix
}

题解参考

posted @ 2020-11-06 18:58  TR_Goldfish  阅读(59)  评论(0编辑  收藏  举报