14. 最长公共前缀(LeetCode-力扣-Python)(注释详解)

题目:

 力扣官方代码

class Solution(object):
    # 最新的公共字符串头str1
    # 第(i+1)个字符串
    def lcp(self, str1, str2):
        # 长度,下标
        length, index = min(len(str1), len(str2)), 0
        # 判断重合部分,并得出重合部分尾部下标
        while index < length and str1[index] == str2[index]:
            index += 1
        return str1[:index]
    # 参数:字符串集合

    def longestCommonPrefix(self, strs):
        """
        :type strs: List[str]
        :rtype: str
        """
        # 判断字符串集合是否为空
        if not strs:
            return ""
        # 第一个字符串prefix
        # 字符串的个数count
        prefix, count = strs[0], len(strs)
        # 遍历从第二个字符串到最后一个字符串
        for i in range(1, count):
            # 更新公共字符串头
            prefix = self.lcp(prefix, strs[i])
            # 如果公共头为空,提前结束遍历
            if not prefix:
                break
        return prefix

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值