#20/20 Bit Manipulation: Lonely Integer [Cracking the Coding Interview Challenges]

#20 Bit Manipulation: Lonely Integer

www.hackerrank.com

入力される数は、1つの数を除いて、ペアになっている。

入力される数の中で、ペアになっていない数字を見つけて出力する問題。

solution

XOR(排他的論理和)を使うことで、ペアになっていない数字を簡単に見つけられる。

以下rubyでの解。

input = $stdin.read.split("\n")
n = input.shift
nums = input.shift.split(" ").map(&:to_i)
puts nums.inject {|result, num| result ^ num }

github.com

排他的論理和

排他的論理和 - Wikipedia

感想

Cracking the Coding Interview Challenges 20題全てコンプリートした。

平日毎朝出社前に1題解くのを目標にゆっくり取り組んでいたので、20日程度。

やってみると、2,30分悩んでしまう問題もあったり、案外すんなり解けなかったりもした。

英語の出題分を理解するのもなかなか気合が要るので、これはよい復習になった。

なんでも良いんだけど、最近はこういうコツコツと日々積み上げていくことの大事さをひしひしと感じている。