/*
Write a function to find the longest common prefix string amongst an array of strings.
思想:拿第一个 str 作为标准,后面的字符串依次做比对。
复杂度:时间复杂度 O(nm), 空间复杂度 O(m), m 是第一个字符串的长度。
这题的关键在于,不断缩减比对的长度,例如下一个比对的长度小于当前,则最小长度就变成了下一个的长度,
如果同下一个比对的过程中出现不匹配,则最小长度又变成了不匹配长度位置的上一位。
*/
import Foundation
func longestCommonPrefix(_ strs: [String]) -> String {
guard strs.count > 0 else {
return ""
}
var compareArray = [Character](strs[0].characters)
for s in strs {
let currentArray = [Character](s.characters)
//因为始终共有长度是最小长度,所以每次都用最小长度去作为下一次比较的基础
if compareArray.count > currentArray.count {
compareArray = Array(compareArray[0 ..< currentArray.count])
}
for i in 0..<compareArray.count {
if currentArray[i] != compareArray[i] {
compareArray = Array(compareArray[0 ..< i])
break
}
}
}
return String(compareArray)
}
print(longestCommonPrefix(["abc", "ab", "ab", "abc"]))
14. Longest Common Prefix
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Write a function to find the longest common prefix string...
- Write a function to find the longest common prefix string...
- 验证第一个字符串从0到leng-1的字符是不是其他字符串都有,string有startswit()方法(是否以某个...
- Write a function to find the longest common prefix string...
- 题目 Write a function to find the longest common prefix str...