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

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

示例 1:

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

示例 2:

输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。

说明:

所有输入只包含小写字母 a-z 。

思路: 现在只想到暴力方法,对几个字符串遍历判断,如果相等,则记录下,如果不相等,则停止。特殊情况,只输入一个字符串的时候,此时,返回本身

golang实现版本
  • 纵向扫描法
 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
func longestCommonPrefix(strs []string) string {
	if len(strs) == 0 {
		return ""
	}
	if len(strs) == 1 {
		return strs[0]
	}
	var commPrefix string
	for _,v := range strs[0] {
        hasPrefix := true
		tempPrefix := commPrefix + string(v)
		for i := 1; i < len(strs); i ++ {
			if !strings.HasPrefix(strs[i], tempPrefix){
				hasPrefix = false
                break
			}
		}
        if hasPrefix{
            commPrefix = tempPrefix
        }else{
            break
        }
		
	}
	return commPrefix
}