首先用将可变长参数strs传入
并用zip函数按照列表中的位序根据下标合并成元组
然后用set将打包好的列表转换为集合的形式去重
同时要是几个变量中都具有公共前缀则去重后的集合长度为1
将集合中的数字用pop函数删除并提取
当遇到其他不是公共前缀字母时跳出循环
由于若集合长为0集合c长度为0不为1直接跳出循环,则不需要再判断给定的列表是否为空集
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
a = ''
for b in zip(*strs):
c = set(b)
if len(c) == 1:
a += c.pop()
else:
break
return a