LeetCode 461. 汉明距离(二进制)

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

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

示例 1:

输入:x = 1, y = 4
输出:2
解释:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑
上面的箭头指出了对应二进制位不同的位置。
示例 2:

输入:x = 3, y = 1
输出:1

注:先求出每个数的二进制表示,然后 由后向前进行比较。

class Solution {
  public int hammingDistance(int x, int y) {
        String a=convert(x);
        String b=convert(y);
       int i=a.length()-1;
        int j=b.length()-1;
        int ans=0;
        while (i>=0 || j >=0){
            char x1 = i>=0? a.charAt(i) :'0';
            char y1 = j>=0? b.charAt(j) :'0';
            if(x1!=y1){
                ans++;
            }
            i--;
            j--;
        }
        return ans;
    }
    public static  String convert(int x ){
        StringBuffer ans = new StringBuffer();
        while(x!=0){
            ans.append(x%2);
            x=x/2;
        }
        return ans.reverse().toString();
    }
}

版权声明:本文为qq_46110320原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>