zoukankan      html  css  js  c++  java
  • 835. Hamming距离

    835. Hamming距离

    中文English

    两个整数的Hamming距离是对应比特位不同的个数。
    给定两个整数x和y,计算两者的Hamming距离。

    样例

    样例1

    输入: x = 1 和 y = 4
    输出: 2
    解释:
    1的二进制表示是001
    4的二进制表示是100
    共有2位不同
    

    样例2

    输入: x = 5 和 y = 2
    输出: 3
    解释:
    5的二进制表示是101
    2的二进制表示是010
    共有3位不同
    

    注意事项

    0 ≤ xy < 231

     
    输入测试数据 (每行一个参数)如何理解测试数据?
    class Solution:
        """
        @param x: an integer
        @param y: an integer
        @return: return an integer, denote the Hamming Distance between two integers
        """
        '''
        大致思路:
        1.得到x和y的二进制数[2:],短的前面需要补上'0',差多少位补多少位
        2.循环进行比较,看有多少位不同
        '''
        def hammingDistance(self,x,y):
            x_bin,y_bin = bin(x)[2:],bin(y)[2:]
    
            if len(x_bin) > len(y_bin):
                for j in range(abs(len(x_bin)-len(y_bin))):
                    y_bin = '0' + y_bin
            else:
                for j in range(abs(len(x_bin)-len(y_bin))):
                    x_bin = '0' + x_bin
            
            count = 0 
            for i in range(len(x_bin)):
                if x_bin[i] != y_bin[i]:
                    count += 1
            return count 
  • 相关阅读:
    Unix网络编程中的五种IO模型
    go工具库分析——go-snowflake
    defer
    滑动窗口
    快速幂
    Golang使用注意点
    微服务数据一致性基础认知
    KMP算法
    单调栈和单调队列
    LRU简单学习
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12563540.html
Copyright © 2011-2022 走看看