提取字符串公共前缀

1.题目描述
在这里插入图片描述

  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证明这三个元素的在此位置上的字母相同,在将相同的字母依次存储在新的字符串中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值