【LeetCode】汉明距离的算法及运用

  • Post author:
  • Post category:其他


1、什么是汉明距离


汉明距离,从二进制方面来看,就是两个等长字符串的二进制对应 bit 不相同的位个数,例如

1011
1000 //汉明距离为2
1100
1010 //汉明距离是2

2.计算汉明距离的算法


思路:

01.将两个给定的数进行 异或(^)运算后保存在变量a,汉明距离就是a的二进制中1的个数

02.当a不为0时,和0x01进行按位与(&)运算。如果结果为1,则统计变量加1

03.将a右移一位,重复第02步

代码:

 class Solution { 
  public:
     int hammingDistance(int x, int y) {
        int cnt = 0;
        x=x^y;
        while(x!=0)
        {
            if(x&0x01)
              cnt++;
        x=x>>1;
     }
       return cnt;         
    }
 };

这里写图片描述

如若用Python来写,^在Python中是指“按位异或运算符”:当两对应的二进位相异时,结果为1



版权声明:本文为anxixiaomu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。