当前位置: 首页 > 科技观察

LeetCode最长公共前缀

时间:2023-03-21 17:20:46 科技观察

前言我们社区会持续整理谷一(Netflix成长黑客,《iOS 面试之道》作者,ACE职业健身教练)的Swift算法题解法。微博:@古谣道长[1])为文字版,方便大家学习阅读。到目前为止,我们已经更新了13期LeetCode算法。我们会保持更新时间和进度(周一、周三、周五上午9:00发布)。每期内容不多。希望大家在上班的路上读一读,积累久了会有很大的提升。不积步,无以至万里;不积小流,则不成江海。Swift社区将陪伴您一路前行。难度级别:简单1.描述编写一个函数来查找字符串数组中最长的公共前缀。如果不存在公共前缀,则返回空字符串""。2.示例示例1输入:strs=["flower","flow","flight"]输出:"fl"示例2输入:strs=["dog","racecar","car"]输出:""解释:输入不存在公共前缀。约束条件:1<=strs.length<=2000<=strs[i].length<=200strs[i]只包含小写英文字母3.AnswerclassLongestCommonPrefix{funclongestCommonPrefix(_strs:[String])->String{guardletfirstStr=strs.firstels{return""}varres=""for(i,char)infirstStr.enumerated(){//dropFirst(_k:Int=1)returnssaSubstructforstrs.dropFirst(){ifi==str.count{returnres}//另一个简单的方法:Array(str)[i],timecomplexityislinearthoughletcurrentStrChar=str[str.index(str.startIndex,offsetBy:i)]ifchar!=currentStrChar{returnres}}res.append(char)}returnres}}main思路:先把第一个字符串作为结果,在遍历数组的时候修改。时间复杂度:O(nm)空间复杂度:O(m)m为最长前缀长度算法解法仓库:LeetCode-Swift[2]点击进入LeetCode[3]练习参考资料[1]@古谣道长:https://m.weibo.cn/u/1827884772[2]LeetCode-Swift:https://github.com/soapyigu/LeetCode-Swift[3]LeetCode:https://leetcode.com/problems/最长公共前缀/