14.【简单】最长公共前缀
文章发布较早,内容可能过时,阅读注意甄别。
# 题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
1
2
3
2
3
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
1
2
3
2
3
说明: 所有输入只包含小写字母 a-z 。
# 题目来源
# 分析
回文数,只需要左边的==右边的即可
# 题解
func findCommonPrefix(a string, b string) string {
i := 0
for i < len(a) && i < len(b) && a[i] == b[i] {
i++
}
if i > 0 {
return a[:i]
}
return ""
}
func longestCommonPrefix(strs []string) string {
// 先算 前两个公共子串
if len(strs) > 0 {
// strings.Join(s[:1], "")
commonPrefix := strings.Join(strs[:1], "")
for i := 1; i < len(strs); i++ {
fmt.Println(strs[i])
commonPrefix = findCommonPrefix(commonPrefix, strs[i])
}
return commonPrefix
}
return ""
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 结果
执行用时:0 ms, 在所有 Go 提交中击败了100.00%的用户
内存消耗:2.4 MB, 在所有 Go 提交中击败了17.86%的用户
1
2
2
上次更新: 2024/03/07, 20:33:54