1#!/usr/bin/env ruby
 2
 3def assert_equal(x, y)
 4  raise [x, y].inspect unless x == y
 5end
 6
 7def find_non_duplicate(items)
 8  counts = Hash.new(0)
 9
10  items.each do |item|
11    counts[item] += 1
12    if counts[item].even?
13      counts.delete(item)
14    end
15  end
16
17  counts.keys[0]
18end
19
20def find_non_duplicate(items)
21  result = 0
22  items.each do |item|
23    result = result ^ item
24  end
25  result
26end
27
28assert_equal(1, find_non_duplicate([4, 3, 2, 4, 1, 3, 2]))