力扣 初级算法 全套力扣精解

初级算法-字符串-最长公共前缀

2021-08-24  本文已影响0人  coenen
编写一个函数来查找字符串数组中的最长公共前缀。

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

提示:

1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i] 仅由小写英文字母组成

摘一个示例做个说明.
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
条件分析:
  1. 这个和strStr()很像.一个是两个字符串比较,一个是所有字符串比较.
  2. 公共前缀 -> 就是所有字符串都是以这个开头
解决思路1:
  1. 根据分析1,可以采用分次比较的方法
  2. 根据分析2,可以采用第一个字符串作为基准就行比较
先判断是否是空数组,然后以第一个字符串为基准进行比较,如果不存在的话则删除基准的最后一个字符.
func longestCommonPrefix(_ strs: [String]) -> String {
    guard strs.count > 0 else {return ""}
    var result = strs[0]
    for (i,str) in strs.enumerated() {
        if i==0 {continue}
        while !str.hasPrefix(result) {
            result.removeLast()
        }
    }
    return result
}

测试用例:

let array = ["t1q","tat6981","t345"]

考察要点:

上一篇下一篇

猜你喜欢

热点阅读