LeetCode14. 最长公共前缀Golang版
1. 问题描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。

2. 思路
2.1. 思路1
- 找到最短的字符串
- 根据最短的字符串,暴力求解
2.2. 思路2
3. 代码
3.1. 思路1代码
func longestCommonPrefix(strs []string) string {
if strs == nil || len(strs) == 0 {
return ""
}
if len(strs) == 1 {
return strs[0]
}
str := shortest(strs)
var res string
for i := 0; i < len(str); i++ {
c := str[i]
for j := 0; j < len(strs); j++ {
res = str[0:i]
if strs[j][i] != c {
return res
} else {
res = str[0:i+1]
}
}
}
return res
}
func shortest(strs []string) string {
minLenth := len(strs[0])
minStr := strs[0]
for _, str := range strs {
if len(str) < minLenth {
minStr = str
minLenth = len(str)
}
}
return minStr
}
本文介绍了如何使用Golang解决LeetCode第14题——最长公共前缀。通过两种思路,包括寻找最短字符串并进行暴力求解,提供了详细的代码实现。代码中首先找到最短的字符串,然后逐字符比较所有字符串的对应位置,找到最长的相同部分作为公共前缀。
467

被折叠的 条评论
为什么被折叠?



