Golang最长公共前缀

题目

Golang 实现编写一个 函数 来查找 字符串 数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。

示例1

输入: ["flower","flow","flight"] 输出: "fl"

示例2

输入: ["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)) }

程序运行后,控制台输出如下:

15_golang最长公共前缀.png

我们输入了测试用例,输出了正确结果。