137 Single Number II

Given an array of integers, every element appearsthreetimes except for one, which appears exactly once. Find that single one.
Note: Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
Complexity: O(n) time and space
The Idea: Same as just finding a unique number. The problem is trivial (implemented below) if you don't take into account the fact that every number is referenced 3 times. The constant space solution likely involves some bitwise operation on all the elements.
class Solution:
def singleNumber(self, nums):
:type nums: List[int]
:rtype: int
hash_count = {}
for key in nums:
if key in hash_count:
hash_count[key] += 1
hash_count[key] = 1
for key, val in hash_count.items():
if val == 1:
return key
obj = Solution()