1.题目描述
- 代码
set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
z=set('123421')
x=set('127807')
z
{'3', '1', '4', '2'}
x
{'7', '8', '2', '0', '1'}
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
x=[1,2,3]
y=[6,7,9]
zip1=zip(x,y)
list(zip1)
[(1, 6), (2, 7), (3, 9)]
a1, a2 = zip(*zip(x, y))
list(a1)
[1, 2, 3]
list(a2)
[6, 7, 9]
代码:
class Solution:
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
res = ""
B=zip(*strs)
for tmp in zip(*strs):
tmp_set = set(tmp)
if len(tmp_set) == 1:
res += tmp[0]
else:
break
return res
Test=Solution()
print(Test.longestCommonPrefix(["Flowe","Flww","Flo"]))
zip(*strs):将list里面三个元素的首字母,第二个字母,第三个字母…依次打包放在一个元组里面
然后在使用set()函数,对打包后的tep进行运算tep_set,删除重复的元素,如果len(tep_set)==1证明这三个元素的在此位置上的字母相同,在将相同的字母依次存储在新的字符串中。