LC吐血整理之Bit_Manipulation篇

所有题解方法请移步 github-Leecode_summary

389.找不同

篇名是位操作,但我好像并没有这么做

① str↔list

Tips-1: python中liststr
  难道只有我一个人以为可以str(list)直接转换吗哈哈哈???

1
2
3
4
# "".join(list)
>>> a = ["a", "m", "i", "l", "y", "x", "y"]
>>> "".join(a)
'amilyxy'

Tips-2: 字符与ASCII转换
ord() 求字符的ASCII码
chr() 求ASCII对应的字符
Tips-3: 字符串中字符的删除
  string 没有remove()方法,之前在String篇有介绍过strip() lstrip() rstrip(),但这些只针对收尾操作,不灵活,要删除中间字符可用 str.replace('s', '')

② str ↔ int

Tips-4: python中intstr

1
2
3
4
5
6
7
8
9
# 十进制标准形式
>>> a = 1234 / a = '1210'
>>> str(a) / int(a)
'1234' / 1210
# 其他进制(十六进制 hex(), 二进制bin())
>>> hex(a) / int(a, 3)
>>> '0x4d2' / 48
>>> bin(a)
>>> '0b10011010010'

136. 只出现一次的数字

我是真的第一次知道异或有交换律定理 /狗头

201. 数字范围按位与

这个跟170场周赛的5304题好像啊,都需要考虑到时间问题…还有就是找规律…
① 如果m、n位数不相等,其结果必为0
② 如果吗、n位数相等,则将m、n右移一位,直至相等,记录右移位数

格雷编码

不懂格雷码的生成过程…还是好好记题吧..
可以直接根据格雷码的性质来。