461.汉明距离(c++实现)

问题描述:

两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。

给出两个整数 x 和 y,计算它们之间的汉明距离。

注意:
0 ≤ xy < 231.

示例:

输入: x = 1, y = 4

输出: 2

解释:
1   (0 0 0 1)
4   (0 1 0 0)
       ↑   ↑

上面的箭头指出了对应二进制位不同的位置。实现方法:
class Solution {
public:
    int hammingDistance(int x, int y) {
        int count=0;
        vector<int> a;
        vector<int> b;
        if(x==0&&y==0)
            return 0;
        else if(x==0&&y!=0)
        {
            while(y)
            {
                int temp=y%2;
                b.push_back(temp);
                y=y/2;
                if(temp==1)
                    count++;
            }
        }
        else if(x!=0&&y==0)
        {
            while(x)
            {
                int temp1=x%2;
                a.push_back(temp1);
                x=x/2;
                if(temp1==1)
                    count++;
            }

        }
        else
        {
            while(y)
            {
                int temp=y%2;
                b.push_back(temp);
                y=y/2;

            }
               while(x)
            {
                int temp1=x%2;
                a.push_back(temp1);
                x=x/2;

            }

            int jishu=max(a.size(),b.size());
             if(jishu>a.size())
             {
                 int bb=a.size();
                 for(int hh=0;hh<jishu-bb;hh++)
                 {
                     a.push_back(0);
                 }
             }
            else
            {
                int aa=b.size();
                for(int h=0;h<jishu-aa;h++)
                 {
                     b.push_back(0);
                 }
            }
            for(int kk=0;kk<jishu;kk++)
            {
                if(a[kk]+b[kk]==1)
                    count++;

            }
        }
         return count;
    }
};

原文地址:https://www.cnblogs.com/mydomain/p/9983224.html

时间: 2024-10-05 07:29:10

461.汉明距离(c++实现)的相关文章

统计二进制中1的个数(LeetCode 461. 汉明距离 or LeetCode 191. 位1的个数)

题目一 LeetCode 461.明距离(Hamming Distance) 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目.给出两个整数 x 和 y,计算它们之间的汉明距离. 注意 0 ≤ x , y < 231. 原文地址:https://www.cnblogs.com/hglibin/p/8984777.html

461. 汉明距离

两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目. 给出两个整数 x 和 y,计算它们之间的汉明距离. 注意: 0 ≤ x, y < 2^31. 示例: 输入: x = 1, y = 4 输出: 2 解释: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑ 上面的箭头指出了对应二进制位不同的位置. [疑问] 1.x,y最大2^31,如何把这么大的数字拆成二进制呢? 考虑一下任意一个数字P,对于 0 ≥ P ≤ 2^31 ,转换成二进制后的二进制位数一定是不大于31位的(思

leadcode的Hot100系列--461. 汉明距离

求两个数的二进制位不同的位置,最先想到的就是异或操作, 异或:按位运算,相同为0,不同为1. 比如: a = 6 对应的二进制表示为: 0 0 1 1 1 ? b = 9 对应的二进制表示为: 0 1 0 0 1 则 a ^ b = 14 对应的二进制表示为: 0 1 1 1 0 所以,只要算出异或之后的数的二进制表示方法里面1的个数. 比如,对于上面的异或之后为14,14的二进制里面1的个数为3,那么汉明距离就是3. 想知道是否有1,最快的当然还是位与操作, 与:按位运算,相当于乘法,0与0是

leet

# 题名1 两数之和    2 两数相加    3 无重复字符的最长子串    4 寻找两个有序数组的中位数    5 最长回文子串    6 Z 字形变换    7 整数反转    8 字符串转换整数 (atoi)    9 回文数    10 正则表达式匹配    11 盛最多水的容器    12 整数转罗马数字    13 罗马数字转整数    14 最长公共前缀    15 三数之和    16 最接近的三数之和    17 电话号码的字母组合    18 四数之和    19 删除链表

461.求两个数字转成二进制后的“汉明距离” Hamming Distance

public class Solution { public int HammingDistance(int x, int y) { int distance = 0; string sX = Convert.ToString(x, 2); string sY = Convert.ToString(y, 2); int maxLength = Math.Max(sX.Length, sY.Length); //填充0,使两个字符串右对齐 sX = sX.PadLeft(maxLength, '0

LeetCode 461. Hamming Distance (汉明距离)

The Hamming distance between two integers is the number of positions at which the corresponding bits are different. Given two integers x and y, calculate the Hamming distance. Note:0 ≤ x, y < 231. Example: Input: x = 1, y = 4 Output: 2 Explanation: 1

461. Hamming Distance

The Hamming distance between two integers is the number of positions at which the corresponding bits are different. Given two integers x and y, calculate the Hamming distance. Note:0 ≤ x, y < 2^31. Example: Input: x = 1, y = 4 Output: 2 Explanation:

461. Hamming Distance(leetcode)

The Hamming distance between two integers is the number of positions at which the corresponding bits are different. Given two integers x and y, calculate the Hamming distance. Note:0 ≤ x, y < 2^31. Example: Input: x = 1, y = 4 Output: 2 Explanation:

相似算法 ,Java实例9 - 汉明距离 Hamming Distance

Java实例9 - 汉明距离 Hamming Distance http://blog.csdn.net/kindterry/article/details/6581344 /**在信息理论中,两个等长字符串之间的汉明距离 * 是两个字符串对应位置上不同字符的个数, * 换句话说,汉明距离就是将一个字符串替换成另外一个字符串所需要替换的字符长度. *例如,1011101和1001001之间的汉明距离是2, *toned和roses之间的汉明距离是3. *汉明重量是字符串相对于同样长度的零字符串的