Longest Common Prefix

Longest Common Prefix

Write a function to find the longest common prefix string amongst an array of strings.

If there is no common prefix, return an empty string "".

Input: strs = ["flower","flow","flight"]
Output: "fl"

思想:

将第一个单词最为最长公共前缀,然后将最长公共前缀与后面的单词一一对比,每两个单词对比后,更新最长公共前缀。

def longestCommonPrefix(strs):
    """
    :type strs: List[str]
    :rtype: str
    """
    str_length = len(strs)#获得strs有多少个单词
    longestCommonPrefix = strs[0]#预定义,将第一个单词作为最长公共前缀
    for i in range(1,str_length):#从第二个单词与最长公共前缀一一对比
        new = ''#预定义 每轮对比产生新的最长公共前缀
        m = min(len(longestCommonPrefix),len(strs[i]))#取每轮对比的两个单词的最长单词长度作为对比次数
        #print(m)
        for j in range(m):#对比
            if strs[0][j] == strs[i][j]:#公共前缀与对比单词的字母一一对比
                new += strs[0][j]#相同,则添加到新最长公共前缀中
            else:
                break#不同,则跳出来
        longestCommonPrefix = new#更新最长公共前缀
        #print("new:"+str(new))
    return longestCommonPrefix
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

St-sun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值