题目描述

找到字符串数组中的最长公共前缀并返回,无则返回""。如:输入["flower","flow","flight"],返回"fl"。

2

 题解

思路:zip函数python中的zip函数对于这道题目的求解带来极大便利。zip函数将对应元素打包成元组,返回元组组成的列表,长度与最短的对象相同。*操作符表示将元组解压为列表。通过一个例子来了解下zip函数可实现的结果:





a = [1,2,3,4,1] b = [4,5,6]print(list(zip(a)))print(list(zip(a,b)))print(list(zip(*zip(a))))
结果为:

LeetCode刷题DAY 21:最长公共前缀_java

通过zip函数,将每个字符串对应位置的字符组成元组,再通过set函数将元组转为无重复元素的集合,便可得出最后结果。相应代码如下:


class Solution:    def longestCommonPrefix(self, strs: List[str]) :        ans = ""        for i in zip(*strs):            if len(set(i))==1:                ans+=i[0]            else:                break        return ans