LeetCode-14、最长公共前缀-简单
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明: 所有输入只包含小写字母 a-z 。
代码:
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
result = ''
if not strs:
return result
str_set = list(map(set, zip(*strs)))
for i, ss in enumerate(str_set):
ss = list(ss)
if len(ss) > 1:
break
else:
result += ss[0]
return result
# zip(*strs) :二维矩阵变换(矩阵的行列互换)
# strs = ['flow', 'flee', 'flight']
# zip(*strs) = [('f', 'f', 'f'),
# ('l', 'l', 'l'),
# ('o', 'e', 'i'),
# ('w', 'e', 'g')]
# set()函数 :set是⼀个⾮常有⽤的数据结构,set中不能包含重复的值
# strss = ['flee', 'flee', 'flight']
# set(strss) = {'flee', 'flight'}
# map()函数 :map会将⼀个函数映射到⼀个输⼊列表的所有元素上,返回iterators,使用list()函数显示
# 规范 :map(function_to_apply, list_of_inputs)
# map(set, zip(*strs)) = [{'f'},
# {'l'},
# {'e', 'i', 'o'},
# {'e', 'g', 'w'}]