力扣算法第四题 最长公共前缀(简单里面的不简单题)

力扣原题

下面是我的源代码

class Solution():
    #我们第一步先做一个函数,判断他们是否有公共前缀

    def lcp(self, char1, char2):
        #思路:  最长的那个字符是由字符长度最短的决定的
        #1.先把最短的那个字符通过min函数找出来
        min_char = min(char1, char2)
        index_char = 0
        #然后判断这个最短的字符是不是为空,如果是空的话就直接返回""
        if not min_char:
            return ""
        #接下来这个while循环的目的是为了找出这两个字符公共部分的下表
        while index_char < len(min_char) and char1[index_char] == char2[index_char]:
            index_char += 1
        return min_char[:index_char]
    #最后返回最长公共前缀


    #有了上面的函数我们只需要把strs里面的参数传入到上面的函数就能的得到最长公共前缀
    def longestCommPrefix(self,strs):
        #首先先判断这个列表是否为空
       if not strs :
           return ""
       prefix=strs[0]
        #prefix:前缀     先假设公共前缀是列表中第一个元素
       for i in range(1,len(strs)):
           然后拿第一个元素与其它元素作比较
           prefix=self.lcp(prefix,strs[i])
            #把每次公共的前缀赋值给prefix
       return prefix#最后得到的prefix前缀就是遍历完列表后得到的公共前缀


我的解题思路

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值