初级算法-字符串-最长公共前缀
2021-08-24 本文已影响0人
coenen
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
提示:
1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i] 仅由小写英文字母组成
摘一个示例做个说明.
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
条件分析:
- 这个和strStr()很像.一个是两个字符串比较,一个是所有字符串比较.
- 公共前缀 -> 就是所有字符串都是以这个开头
解决思路1:
- 根据分析1,可以采用分次比较的方法
- 根据分析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"]
考察要点:
- 字符串