Terminus

Give time to civilization, not to civilization

0%

最长公共前缀

题目

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

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

解法

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
26
27
28
29
30
31
32
33
34
35
36
37
func longestCommonPrefix(strs []string) string {
if len(strs) == 1 {
return strs[0]
}

minLength := len(strs[0])
minIndex := 0
for i := 0; i < len(strs); i++ {
if len(strs[i]) < minLength {
minLength = len(strs[i])
minIndex = i
}
}


i := minLength - 1
for ; i >= 0; i-- {
boolVar := true
for j := 0; j < len(strs); j++ {
if strs[j][:i+1] != strs[minIndex][:i+1] {
boolVar = false
break
}
}

if boolVar {
break
}
}

if i < 0 {
return ""
}

return strs[minIndex][:i+1]
}