大家好,又见面了,我是你们的朋友全栈君。
^运算符为异或运算
a = 10
b = 100
c = a^b # c = 110
为什么会得到这样的结果呢?
bin(10) #'0b1010'
bin(100) #'0b1100100'
其实这里面经历了几次计算:
1.计算a,b的二进制值:
bin(10) #'0b1010'
bin(100) #'0b1100100'
2.^符号的作用是将两数字相同位置但是数值不同的值变为1,即经过^计算获得字符串‘ob1101110’
3.随后将二进制的‘ob1101110’转化为十进制的值即为:110
以上就是^的计算过程。
目前个人总结的^在python中的作用主要是两个方面:
1.计算不重复的值(136. Single Number)
可以对list中的值进行累计XOR运算,获得唯一值
class Solution:
def singleNumber2(self, nums):
r = 0
for i in nums:
print(i)
r ^= i
return r
2.计算汉明距离(461. Hamming Distance)
class Solution(object):
def hammingDistance(self, x, y):
"""
:type x: int
:type y: int
:rtype: int
"""
return bin(x^y).count('1')
这道题总觉得题设描述的不太清楚,建议看一下百度关于汉明距离的解释
对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/160178.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...