Hamming Distance 引发的思考

来源:互联网 发布:mac drarmw 编辑:程序博客网 时间:2024/04/29 08:32

今天,在刷LeetCode上面的题目时,遇到一个算法题,叫Hamming Distance,题目描述如下:


实际上就是两个int型的变量二进制编码数值不同的位置的个数,其实换句话说,就是求两者二进制编码的异或之后1的个数


我个人想了很久,用了很蠢很蠢的方法,现在看看,简直是。。。

来,show the code:

public int hammingDistance(int x, int y) {    int c=Integer.valueOf(Integer.toBinaryString(x));     int d=Integer.valueOf(Integer.toBinaryString(y));     String eString=Integer.toString(c^d);     String regEx="[^1]";        Pattern p = Pattern.compile(regEx);     Matcher m = p.matcher(eString);     return  m.replaceAll("").trim().length();      }

又是正则表达式又是二进制转换什么的。最后还是有问题。。

不过,看到解法时,我顿时觉得自己的方法太low了:

public int hammingDistance(int x, int y) {        return Integer.bitCount(x ^ y);    }
。。。这什么啊?一行代码解决了?赶紧查查那是什么东西0.0:



自己还是太年轻!!!

继续学习,继续加油,java自己还是个入门


1 0