Single number Leetcode Solution Python

2 min read

Are you practicing Python coding challenges? Moreover, looking for single number Leetcode solution Python. Welcome to Tutor Python here we help you learn Python, try to find solutions for Python challenges, and share easy-to-follow Python tutorials and guides.

Description: Single number Leetcode challenge

Single number Leetcode Solution Python

Single number Leetcode Solution Python

You can complete the Solution class to implement the singleNumber method using the XOR approach as follows:

from typing import List

class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        result = 0
        for num in nums:
            result ^= num
        return result

This Solution class has the singleNumber method that takes a list of integers as input and returns the single number using the XOR operation, just like the standalone function I provided earlier.

Step by Step Code explanation

Problem: You are given a non-empty array of integers where every element appears twice except for one. You need to find the single number.

Solution Approach: The solution uses the XOR bitwise operation, which has two important properties:

  1. XOR of a number with itself is 0: x ^ x = 0 for any integer x.
  2. XOR is commutative and associative: a ^ b ^ c = a ^ (b ^ c).

The idea is to XOR all the numbers in the array. Since all elements appear twice except for one, XORing all the elements will cancel out the duplicates, and you will be left with the single number.

Here’s the step-by-step explanation of how the code works:

  1. Initialize a variable result to 0. This variable will store the result.
  2. Iterate through the nums list using a for loop.
  3. For each number in the list, XOR it with the current value of result and update result with the XOR result. This effectively accumulates the XOR of all the numbers in the list.
  4. After iterating through the entire list, the result will contain the XOR of all the elements. Since all elements appear twice except for one, the duplicates will cancel each other out, and you will be left with the single number.
  5. Return the result, which is the single number.

Here’s a simple example to illustrate the process:

Example: nums = [4, 1, 2, 1, 2]

  1. Initialize result to 0.
  2. Iterating through the list:
    • result = 0 ^ 4 = 4
    • result = 4 ^ 1 = 5
    • result = 5 ^ 2 = 7
    • result = 7 ^ 1 = 6
    • result = 6 ^ 2 = 4
  3. After the loop, result contains the single number, which is 4.

This approach works because XORing the same number twice results in 0, and it doesn’t matter what order the numbers are XORed in, so it effectively cancels out duplicates and leaves you with the single number in the end.

Hope this single number leetcode Solution Python helped you. Request us for more such Python solutions. Or hire a Python tutor to learn Python from an expert.