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
}