LeedCode知识点之位运算
LeedCode知识点之位运算
- 一、python中的位运算
- 1、相关概念
- 2、实例技巧
一、python中的位运算
1、相关概念
概念1:python中的位运算符是把数字看作二进制来进行计算的。
概念2:需要掌握十进制与二进制之间的转换方式。举例如下:
a为二进制数0111001,则转换为对应十进制应该为:57。a的二进制数从后往前依次乘以2的0次方,2的一次方等等,最后加在一起得57。
2、实例技巧
例1:
# 60的二进制是00111100,1的二进制数是00000001
# &符号的意思是如果相应位都为1的情况下,结果才为1
a = 60
a&1 # 运算是二进制,输出结果为十进制
a&1的输出为0。
例2:
解释:57的二进制是111001,1的二进制是000001,前面的0可以省略,也可以添加,二者按照位运算符号^运算之后为111001,换算成十进制为56。
例3:求汉明距离
题目:两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
给出两个整数 x 和 y,计算它们之间的汉明距离。
注意:
0 ≤ x, y < 2**31.
示例:
输入: x = 1, y = 4输出: 2解释:
1 (0 0 0 1)
4 (0 1 0 0)↑ ↑上面的箭头指出了对应二进制位不同的位置
答案如下:
class Solution:def hammingDistance(self, x: int, y: int) -> int:z = x ^ yres = 0while z:if bin(z)[-1] == '1':res += 1z = z >> 1return res
解释:输入的x和y均为整数,利用位运算,将二进制对应位置不同的设为1,计算1的个数即可。
x^y意思是将x和y中对应位相同的为0,不同的为1。z是个十进制,bin(z)是z的二进制数,bin(z)[-1]是z的二进制数从右往左数第一位,判断它是否都等于‘1’,如果为1的话,就记一个数。
LeedCode知识点之位运算相关推荐
- [Leedcode][JAVA][第67题][二进制求和][位运算][字符串]
[问题描述][简单] 给你两个二进制字符串,返回它们的和(用二进制表示).输入为 非空 字符串且只包含数字 1 和 0.示例 1:输入: a = "11", b = "1 ...
- [Leedcode][JAVA][第136题][第137题][只出现一次的数字][位运算][HashSet][HashMap]
[问题描述][第136,137题][只出现一次的数字] 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了N次.找出那个只出现了一次的元素.[第136题]N= 2 输入: [2,2 ...
- python中不同进制的整数之间可以直接运算_Python 进制转换、位运算
一.进制转换 编程用十进制,十进制转换为二进制.八进制.十六进制 In [135]: bin(23) Out[135]: '0b10111' In [136]: oct(23) Out[136]: ' ...
- python 整数逆位运算_python训练营:注释、运算符、数据类型与位运算
天学习的内容整理成脑图如下,其中带☆的是需要重点掌握的模糊知识点,需要加强训练和记忆. 二.具体学习内容 2.1 注释 2.1.1 多行注释 2.1.2 长字符串注释 2.2 运算符 2.2.1 算术 ...
- 位运算+取某一位+java_Java位运算小节
2019新春支付宝红包技术大揭秘在线峰会将于03-07日开始,点击这里报名届时即可参与大牛互动. 位运算表达式由操作数和位运算符组成,实现对整数类型的二进制数进行位运算.位运算符可以分为逻辑运算符(包 ...
- 0x01.基本算法 — 位运算
目录 一.位运算 二.memset函数 三.移位运算 四.二进制状态压缩 五.成对变换 六.lowbit 七.相关习题 0.AcWing 26. 二进制中1的个数 1.Acwing 89. a^b(快 ...
- C#位运算实际作用之操作整型某一位
1.前言 前几天写了两篇关于c#位运算的文章 c#位运算基本概念与计算过程 C#位运算实际运用 在文中也提到了位运算的实际作用之一就是合并整型,当时引用了一个问题: C# 用两个short,一个int ...
- android位运算简单讲解
一.前言 在查看源码中,经常会看到很多这样的符号"&"."|"."-",咋一看挺高大上:仔细一看,有点懵:再看看,其实就是大学学过的 ...
- c语言位运算负数的实例_0基础学习C语言第三章:位运算
C语言提供了六种位运算符: & 按位与 | 按位或 ^ 按位异或 ~ 取反 << 左移,相当与*2 >> 右移,正数高位补0,负数由计算机决定 循环左移k次 (x< ...
- [Leetcode][第78题][JAVA][子集][位运算][回溯]
[问题描述][中等] [解答思路] 1. 位运算 复杂度 class Solution {List<Integer> t = new ArrayList<Integer>(); ...
最新文章
- 刚评上院士的马斯克就飘了,说要每天发射三次大火箭,向火星转移100万吨物资...
- Swift和Objective-C混编注意事项
- 数据增长浪潮下,PCIe 6.0的问与Rambus的答
- 【MySql】mysql 慢日志查询工具之mysqldumpslow
- iOS-property属性介绍
- GET和POST史上最全总结
- python中字典使用_python中字典的使用
- 类成员变量初始化总结
- 东方通(tongweb)部署
- 计算机毕业设计之java+jsp517报刊图书征订管理系统
- 前端切图+网页排版的注意事项和经验分享
- 手把手教你如何 远程控制另一台电脑 保姆教程
- 54元阿里云上建站详细步骤
- 计算机图形设计论文 真实图形生成技术的发展,计算机图形设计论文真实图形生成技术的发展.docx...
- 响应时代号召 中烜速充走进新能源充电桩新时代
- 数学建模学习笔记(清风)——插值算法
- 目前最完美的Windows Server 2008企业版激活方法
- tyvj p1004 滑雪
- KVM安装部署搭建ngixn
- Excel解密——okfone解密大师