14. Longest Common Prefix

14. Longest Common Prefix

Description:
在这里插入图片描述
题解:
Solution1:先找出list中长度最小的元素min_str,然后以此长度作为待匹配前缀的最长长度,两层遍历,第一层为min_str的长度,第二层为list的数组元素,按字母的先后顺序逐字母进行匹配,每遍历完一遍list之后,统计匹配的个数cnt,如果cnt等于len(list)-1,则当前字母匹配成功,在答案中记录当前的字母,继续遍历下一个字母。否则break,返回当前的答案。

class Solution:
	def longestCommonPrefix(self,strs):
	    """
	    :type strs: List[str]
	    :rtype: strf
	    """
	    ans =""
	    cnt = 0
	    total_num = len(strs) 
	    # print("step:1")
	    if len(strs) ==0:
	        return ""
	    for i in range(len(min(strs, key=len))):
	        for j in range(len(strs)-1):
	            if strs[j][i] == strs[j+1][i]:
	                cnt+=1
	        if cnt == total_num-1:
	            ans = ans + strs[0][i]
	            cnt = 0
	        else:
	            return ans
	    return ans

这里用到了python的内置函数用于查找list中长度最小的字符串,这里展开介绍:
首先:文档地址

#Example 3: Find list with minimum length using key function
strs = ["flower","flowe1","flowey"]
str_=min(strs, key=len)
print('Minimum is:',str_)
#output: Minimum is:fly

num = [15, 300, 2700, 821]
num1 = [12, 2]
num2 = [34, 567, 78]
# using min(iterable, *iterables, key)
print('Minimum is:', min(num, num1, num2, key=len))
#output: Minimum is:[12, 2]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值