python 中 set()的使用

leetcode中一个很变态的简单题目

https://leetcode-cn.com/problems/buddy-strings/description/

本来思路很明确感觉很简单,然鹅....

 

emmmm....

看了答案 很easy....   所以,要学会使用set()啊。

set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等

set 语法:

class set([iterable])

参数说明:

  • iterable -- 可迭代对象对象;

测试实例:

 

解题:

建立一个空的set()

然后通过建立for循环判断字符是否重复出现

seen = set()
for a in A:
    if a in seen:
       return True
    seen.add(a)
return False


 

另外在本题解答中还出现了 itertools.izip(A,B)的用法


pairs = []
for a, b in itertools.izip(A, B):
     if a != b:
        pairs.append((a, b))
     if len(pairs) >= 3: 
        return False
return len(pairs) == 2 and pairs[0] == pairs[1][::-1]    #  pairs[1][::-1]  -1倒序输出

 

itertools——创建高效迭代器的Python模块。

itertools.izip(*iterables)

*iterables为一个或多个可迭代对象

作用:返回所有可迭代对象的迭代器(止于最短序列)

 

参考:https://blog.csdn.net/c465869935/article/details/51598388

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值