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]