刷题2021-11-15 最长公共前缀

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

编写一个函数来查找字符串数组中的最长公共前缀
如果不存在公共前缀,返回空字符串 “”。

示例 1:

输入:strs = [“flower”,“flow”,“flight”]
输出:“fl”
示例 2:

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

来源:力扣(LeetCode)

我的答案:

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        result = ''
        #如果给的数组是空的话就直接返回空了
        if len(strs) == 0:
            return result
        #把数组的第一个元素给result,以后用来接收重复的部分
        result = strs[0]
        #遍历字符串数组
        for i in strs:
        	#先用result1来接收result的内容,然后清空result
            result1 = result
            result = ''
            #遍历对比之前获取的重复段字符串与当前字符串
            for j in range(min(len(result1),len(i))):
            	#用result来接收重复的部分,然后到下一轮循环的时候传给result1 
            	#如果两个字符串对应的字符相等,就把该字符加给result后面,如果不等就直接退出此轮循环
                if result1[j] == i[j]:
                    result = result + result1[j]
                else:
                    break
        return result

结果:
执行结果:通过
执行用时:32 ms, 在所有 Python3 提交中击败了77.17%的用户
内存消耗:15.1 MB, 在所有 Python3 提交中击败了19.51%的用户
通过测试用例:123 / 123

大佬答案:
这个利用了min()和max()对字符串的判断
max和min函数:函数功能为取传入的多个参数中的最大/最小值,或者传入的可迭代对象元素中的最大/最小值。默认数值型参数,取值大/小者;字符型参数,取字母表排序靠后/前者(数字较字母靠前)。还可以传入命名参数key,其为一个函数(如传入key=len就是计算最长/最短字符串),用来指定取最大值的方法。default命名参数用来指定最大值不存在时返回的默认值。

class Solution:
    def longestCommonPrefix(self, strs):
        if not strs: 
        	return ""
        s1 = min(strs)
        s2 = max(strs)
        for i,x in enumerate(s1):
            if x != s2[i]:
                return s2[:i]
        return s1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值