@LeetCode
LeetCode百题14.最长公共前缀
题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例
输入:strs = [“flower”,“flow”,“flight”]
输出:“fl”
解析
利用python的zip函数,把str看成list然后把输入看成二维数组,左对齐纵向压缩,然后把每项利用集合去重,之后遍历list中找到元素长度大于1之前的就是公共前缀。
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
代码
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
str1=''
zipped = zip(*strs)
l1 = list(zipped)
for i in l1:
if len(set(i)) == 1: # 集合长度为1,即只有一个相同元素
str1 += i[0]
else:
break
return str1