0
点赞
收藏
分享

微信扫一扫

Python按位异或运算符^应用案例一则:查找只出现一次的数字


问题描述:有一个整数列表,里面有一个数字只出现了一次,而其他数字都出现了4次,要求查找这个只出现了一次的数字。

思路要点:一个数字和自己异或一次会变成0。

参考代码:

import random
def onlyYou(lst):
    r = lst[0]
    for item in lst[1:]:
        r = r ^ item
    return rfor i in range(100000):
    lst = random.sample(range(1000), 8)
    lst = lst[:-1]*4 + lst[-1:]
    random.shuffle(lst)    # 传统套路
    r = onlyYou(lst)
    # reduce,函数式编程
    rr = reduce(lambda x,y:x^y, lst, 0)
    if lst.count(r)!=1 or lst.count(rr)!=1:        print(lst)
        print(r, rr)

运行后程序无输出,说明思路和代码正确。


举报

相关推荐

0 条评论