LeetCode 461 by Swift — iOS

Henry Huang
66henry 程式筆記
2 min readAug 8, 2019
https://leetcode.com/problems/hamming-distance/

一日一哩扣:漢明距離 (Hamming Distance)

條件

首先要先搞懂何謂 Hamming Distance,才能知道題目要的,是考你輸入兩個 10 進制的數字,轉成 2 進制後,在同個位元不相同的個數 (也就是一個是 0 另一個是 1 的狀況,反過來說如果是 00 或 11,就是相同)

解法

  1. 將 x 和 y 轉成 2 進制,比較各個位元是否相等
  2. 再把不相等的個數累加回傳。

如果不知道 XOR 操作,1. 可以先轉 2進制,然後寫個迴圈一一比對,空的位元就補 0,但這題用 XOR 實在快多了。

XOR 是一種位元運算子

https://docs.swift.org/swift-book/LanguageGuide/AdvancedOperators.html

簡單說 XOR 就是用在 Int 上的語法,可以比對 2 進制位元,不同的顯示 1,相同的顯示 0

補充 LeetCode 上看到的一行解

基本一樣只是差在有現成的語法可用

--

--