1.异或运算

  十进制的异或运算,先转成二进制进行异或,按位进行比较,对应位置相同则为0,对应位置不同则为1,,再从异或结果转成十进制。

  python中:

  1 ^ 1 = 0

  1 ^ 2 = 3

  1 ^ 0 = 1

  0 ^ 1 = 1

  1 的二进制0000 0001

  2 的二进制0000 0010

  1 ^ 2 的二进制是:0000 0011 换算成十进制为3

  异或的交换律  1 ^ 0 = 0 ^ 1

  异或的结合律   1 ^ 2 ^ 3 =  1 ^ (2 ^ 3)

一个非空整数列表,除了某个元素只出现一次外,其余每个元素均出现两次,找到只出现一次的元素,leetcode136

例如 [1,2,3,4,3,2,1]
异或的结合律和交换律
1 ^ 2 ^ 3 ^ 4 ^ 3 ^ 2 ^ 1 = 1 ^ 1 ^ 2 ^ 2 ^ 3 ^ 3 ^ 4 = 0 ^ 4 = 4 def solve(li):
temp = li[0]
for i in range(1,len(li)):
temp = temp ^li[i]
print(temp) 结果:4 一般解法:
def solve(li):
for i in range(len(li)):
ret = li.count(li[i])
if ret == 1:
print(li[i]) solve([1,2,3,4,3,2,1]) 结果:4
1 - n 放在含有 n + 1 个元素的列表中,只有唯一的一个元素值重复,其他均只出现一次,每个列表元素只能访问一次,设计一个算法,将它找出来,不能使用辅助存储空间 Leetcode 287
分析:找出重复的元素。
1-5个元素的列表-- [1,2,3,4,5]
5+1个元素的列表---[0,1,2,3,4,5]
[1,2,3,3,4,5] 找出3
同样的异或结合律和交换律
0 ^ 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 1 ^ 2 ^ 3 ^ 3 ^ 4 ^ 5
思路:一个数奇数次异或自己就是本身,偶数次异或自己就是0,要找出3,就让3自己异或自己奇数次。其他数异或自己偶数次,就可以了。 0 ^ 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 1 ^ 2 ^ 3 ^ 3 ^ 4 ^ 5 = 1 ^ 1 ^ 2 ^ 2 ^ 0 ^ 3 ^ 3 ^ 3 ^ 4 ^ 4 ^ 5 ^ 5 = 3 def sove(li):
ret = 0
temp_li = [x for x in range(0,len(li)]
for i in range(0, len(temp_li))
ret = ret ^ li[i] ^ temp_li[i]
print(ret) sove([1,2,3,3,4,5]) 结果:3

2.按位运算

  按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0

  a = 1111  0100

  b = 1001 1011

  a & b = 1001 0000

  

python基础:3.高级运算符的更多相关文章

  1. python基础语法(运算符及优先级)

    python基础语法(运算符及优先级) python语言支持的运算符类型 算数运算符 假设变量a为10,变量b为21 算数符 描述 实例 + 加-两个对象相加 a+b结果31 - 减-得到一个负数或者 ...

  2. Python自动化 【第七篇】:Python基础-面向对象高级语法、异常处理、Scoket开发基础

    本节内容: 1.     面向对象高级语法部分 1.1   静态方法.类方法.属性方法 1.2   类的特殊方法 1.3   反射 2.     异常处理 3.     Socket开发基础 1.   ...

  3. python基础之七种运算符

    废话不多说,上节说的是数据类型,本篇讲讲数据运算. 在算式"1+2"中,"1"和"2"被称为操作数,"+"被称为运算符 ...

  4. python基础语法_7运算符

    http://www.runoob.com/python3/python3-basic-operators.html#ysf7 目录 Python语言支持以下8类型的运算符: 算术运算符(-,+,*, ...

  5. Python之路,Day8 - Python基础 面向对象高级进阶与socket基础

    类的成员 类的成员可以分为三大类:字段.方法和属性 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段.而其他的成员,则都是保存在类中,即:无论对象的 ...

  6. python基础--数据类型、运算符、流程控制

    原文地址:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143165862 ...

  7. python基础 - 变量与运算符

    变量与运算符 变量 定义一个变量 a = [1,2,3,4,5,6] print(a) # [1,2,3,4,5,6] 变量命名要求: 首字母不能是数字 只能包含字符数字下划线 不能是关键字 type ...

  8. Python 基础1 - 位运算符

    引言 本文主要介绍位运算符,实际上Python有以下7类运算符: [赋值运算符].[比较运算符].[算术运算符].[逻辑运算符].[身份运算符].[成员运算符].[位运算符] 位运算符 按位运算符是把 ...

  9. python基础一(运算符/变量定义/数据类型)

    一.运算符 1.算数运算符 (1)加(+) 注意:字符串与整数之间不能进行相加,需要通过str()或int()进行转换数据类型 整数与整数相加 >>> 1 + 1 2 >> ...

  10. Python基础之基本运算符

    目录 1. 算数运算符 2. 比较运算符 3. 赋值运算符 4. 逻辑运算符 5. 身份运算 6. 运算符优先级 1. 算数运算符 常用算术运算符使用方法如下: x = 5 y = 2 a = x + ...

随机推荐

  1. TabController定义顶部tab切换

    前面通过DefaultTabController组件实现了AppBar里面的顶部导航切换,但是在项目中有数据请求,上拉加载更多等操作的时候,前面的写法,就不是很方便操作,因此,在flutter里面,还 ...

  2. LintCode之两两交换链表中的节点

    题目描述: 我的思路: 由题目描述可知,题目是要求将第一个与第二个节点,第三个与第四节点....进行交换,而进行交换时只用将节点的值进行交换即可.需要注意的是:当链表为null或者当链表只有一个节点时 ...

  3. POJ 1753 Flip Game (状压+暴力)

    题目链接:http://poj.org/problem?id=1753 题意: 给你一个4*4的棋盘,上面有两种颜色的棋子(一种黑色,一种白色),你一次可以选择一个棋子翻转它(黑色变成白色,同理反之) ...

  4. http预请求 options

    问题 使用axios请求接口时,出现了发出两次请求的情况:一个是请求OPTIONS,一个是正常的POST请求:查资料发现与跨域请求有关. 概念 MDN中有提到: 出于安全原因,浏览器限制从脚本内发起的 ...

  5. linux 统计代码行数

    列出目录下所有文件(仅有文件名):ls -laR 列出目录下所有文件名称find . * 统计当前目录下全部代码行数find . * | xargs wc -l 统计当前目录下java文件行数,去除空 ...

  6. 2017/2/27-Laravel_资源控制器命令

    用于处理关于图片存储的 HTTP 请求,使用 Artisan 命令 make:controller,我们可以快速创建这样的控制器 : php artisan make:controller Photo ...

  7. C#通过UserAgent判断智能设备(Android,IOS,PC,Mac)

    尝试通过 Agent 来获取相应的智能手机设备标识,根据标识的不同来输出对应设备所需的显示样式及其他.经过努力,终于搜集了比较全的 智能设备 的 Agent,相应的判断过程及代码如下,不明白的留言. ...

  8. 远控CVE整理

    Windows: CVE-2017-8464(通过快捷方式,可U盘/共享等途径传播)

  9. 异步请求jquery action

    package com.tarena.action; import java.util.HashMap;import java.util.Map; import javax.annotation.Re ...

  10. Python入门习题10.河内塔(汉诺塔)问题

    例10 共n个圆盘,a,b,c三根柱子 #汉诺塔问题.py def Hanoi(n): #定义n阶汉诺塔问题移动次数函数 if n == 1: return 1 else: return 2*Hano ...