Skip to content

Latest commit

 

History

History
70 lines (52 loc) · 1.6 KB

File metadata and controls

70 lines (52 loc) · 1.6 KB

461. Hamming Distance share

Problem Statement

The Hamming distance between two integers is the number of positions at which the corresponding bits are different.

Given two integers x and y, return the Hamming distance between them.

 

Example 1:

Input: x = 1, y = 4
Output: 2
Explanation:
1   (0 0 0 1)
4   (0 1 0 0)
       ↑   ↑
The above arrows point to positions where the corresponding bits are different.

Example 2:

Input: x = 3, y = 1
Output: 1

 

Constraints:

  • 0 <= x, y <= 231 - 1

Solutions

impl Solution {
    pub fn hamming_distance(x: i32, y: i32) -> i32 {
        let (mut x, mut y) = (x, y);
        let mut count = 0;

        while x != 0 || y != 0 {
            if x % 2 != y % 2 {
                count += 1;
            }
            x /= 2;
            y /= 2;
        }

        count
    }
}