问题描述:给k个字符串,求出他们的最长公共前缀(LCP)
样例
在 "ABCD" "ABEF" 和 "ACEF" 中, LCP 为 "A"
在 "ABCDEFG", "ABCEFG", "ABCEFA" 中, LCP 为 "ABC"
class Solution:
def longestCommonPrefix(self, strs):
n = 0
p = []
k = len(strs)
if k == 0: #排除strs为空的情况
return ""
l2 = []
for v in strs:
l2.append(len(v)) #转化为长度列表并保存
m = min(l2)
if m == 0: #排除单个字串为空的情况
return ""
while(True):
l = []
z = []
for i in range(k):
l.append(strs[i][n])
z.append(1)
l1 = zip(l,z)
d = dict(l1) #转化为字典,合并相同字符
if(len(d) == 1):#如果字典长度为1,说明前缀相同
n = n + 1
p.append(l[0])
else:
t = ''.join(p) #连接字符
return t
if n == m:
t = ''.join(p)
return t