Python按位异或运算符^应用案例一则:查找只出现一次的数字
来源:互联网 发布:c 网络编程卷1 编辑:程序博客网 时间:2024/06/05 20:26
问题描述:有一个整数列表,里面有一个数字只出现了一次,而其他数字都出现了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)
运行后程序无输出,说明思路和代码正确。
----------相关阅读----------
详解Python中的位运算符规则、原理与用法
----------喜大普奔----------
1、继《Python程序设计基础》(2017年9月第5次印刷)、《Python程序设计(第2版)》(2017年9月第4次印刷)、《Python可以这样学》(2017年7月第3次印刷)系列图书之后,董付国老师新书《Python程序设计开发宝典》已于2017年8月1日在清华大学出版社出版,并于2017年9月进行了第2次印刷。为庆祝新书《Python程序设计开发宝典》全面上架,清华大学出版社联合“赣江图书专营”淘宝店推出特价优惠活动,《Python程序设计开发宝典》原价69元,新书上架期间超低价39.8元,可以复制下面的链接使用浏览器打开查看图书详情和购买:
https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-14464369246.84.46f16db0roWfX4&id=557107249812&rn=339cbc9df2bac424664103917dedfbd2&abbucket=8&tbpm=3
2、董付国老师6本Python系列图书阅读指南
- Python按位异或运算符^应用案例一则:查找只出现一次的数字
- 用异或实现查找只出现一次的数字
- 找出数组中两个只出现一次的数字;异或运算^的一个作用
- 码农小汪剑指Offer之38-数组中只出现一次的数字 异或运算的运用
- 剑指offer--数组中只出现一次的数字--异或运算、二进制运用
- 位运算之只出现一次的的数字
- 查找数组中只出现一次的数字
- 查找数组中三个只出现一次的数字
- 数组中只出现一次的数字(异或方法)
- 只出现一次的数字
- 学习笔记——利用位运算求数组中只出现一次或奇数次的数字
- 异或运算的经典算法题:找出数组中只出现一次的数字,其它数字都出现了两次
- 异或的应用 及剑指offer 面试 40 数组中只出现一次的数字
- 异或运算及其应用-查找奇数个数的数字
- 查找只出现一次的字符串
- 查找第一次只出现一次的字符
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- windows常用命令
- delphi读取.ini配置文件
- S12G128底层代码分析
- jeecg中上传附件的处理
- ByteArrayinputStream与ByteArrayOutputStream,printStream
- Python按位异或运算符^应用案例一则:查找只出现一次的数字
- Python编程一定要注意的那些“坑”(八):赋值运算符=
- Go语言项目Beego的学习
- 湖南跑胡子算法
- 实现maven管理的Javaweb项目的proguard代码混淆功能
- linux开机自动执行脚本
- VS2015中配置Pthread
- JEECG微云快速开发平台EXCEL导入导出
- 死亡之ping