您当前的位置:首页 > 计算机 > 编程开发 > Python

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

时间:12-27来源:作者:点击数:

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

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

参考代码:

import random

def onlyYou(lst):

    r = lst[0]

    for item in lst[1:]:

        r = r ^ item

    return r

for 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)

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

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门