用 Golang 实现编写一个 函数 来查找 字符串 数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。
输入: ["flower","flow","flight"] 输出: "fl"
输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。
package main
import (
"fmt"
)
func longestCommonPrefix(strs []string) string {
switch len(strs) {
case 0:
return ""
case 1:
return strs[0]
}
isFinish := true
i := 0
for ; isFinish; i++ {
for j := 1; j < len(strs); j++ {
if i > len(strs[j])-1 || i > len(strs[j-1])-1 || strs[j-1][i] != strs[j][i] {
isFinish = false
}
}
}
return strs[0][:i-1]
}
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
strArr1 := []string{"flower", "flow", "flight"}
strArr2 := []string{"dog","racecar","car"}
fmt.Println("strArr1 =", longestCommonPrefix(strArr1))
fmt.Println("strArr2 =", longestCommonPrefix(strArr2))
}
程序运行后,控制台输出如下:
我们输入了测试用例,输出了正确结果。