编写一个函数来查找字符串数组中的最长公共前缀
如果不存在最长公共前缀,返回空字符串 ‘’
示例 1:
输入: [“flower”,”flow”,”flight”]
输出: “fl”
示例 2:
输入: [“dog”,”racecar”,”car”]
输出: “”
解释: 输入不存在最长公共前缀
说明:所有输入只包含小写字母 a-z
因为没有想到好方法,这里用了一个取巧的方法,如果多加单词则需要增加变量。
a,b,c = ['flower', 'flow', 'flight']
# a,b,c = ['dog','racecar','car']
def start(d,e,f):
for k,v,s in zip(d,e,f):
if k==v and v==s:
print(k,end='')
else:
print(' ',end='')
start(a,b,c)
方法二:
老师讲的一种方法。
def solution(strs):
# 如果strs为空,返回空字符串
if not strs:
return ''
# 找出最长公共前缀,只需要对比最长的字符串和最短的字符串
s1 = min(strs) # 根据ASCII码来排序的,这里需要自己理解,最大的ASCII包含最小的。
s2 = max(strs)
for i, c in enumerate(s1):
# 遍历最短的字符串,i为计数器,c为s1的字母
if c != s2[i]: # 如果字母和s2中某次不相等则返回s1,到i-1结束
return s1[:i]
return s1
print(solution(['flower', 'flow', 'flight']))