Skip to content

Commit 15658bf

Browse files
committed
Single Number Algo Added
1 parent e9e7c96 commit 15658bf

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

bit_manipulation/single_number.py

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
def single_number(nums: list[int]) -> int:
2+
"""
3+
Find the single number in an array where every other number appears twice.
4+
5+
Args:
6+
nums: List of integers where every integer appears twice except for one.
7+
8+
Returns:
9+
The single integer that appears once.
10+
11+
Example:
12+
>>> single_number([4, 1, 2, 1, 2])
13+
4
14+
>>> single_number([2, 2, 1])
15+
1
16+
>>> single_number([1])
17+
1
18+
"""
19+
result = 0
20+
for num in nums:
21+
result ^= num # Applying XOR operation
22+
return result
23+
24+
25+
if __name__ == "__main__":
26+
# Test cases
27+
print(single_number([4, 1, 2, 1, 2])) # Output: 4
28+
print(single_number([2, 2, 1])) # Output: 1
29+
print(single_number([1])) # Output: 1
30+
print(single_number([5, 3, 5, 7, 3])) # Output: 7

0 commit comments

Comments
 (0)