Skip to content

1009. Complement of Base 10 Integer

Problem Page: https://leetcode.com/problems/complement-of-base-10-integer/

#
# @lc app=leetcode id=1009 lang=python3
#
# [1009] Complement of Base 10 Integer
#
# https://leetcode.com/problems/complement-of-base-10-integer/description/
#
# algorithms
# Easy (61.45%)
# Likes:    2224
# Dislikes: 108
# Total Accepted:    204.3K
# Total Submissions: 335.1K
# Testcase Example:  '5'
#
# The complement of an integer is the integer you get when you flip all the 0's
# to 1's and all the 1's to 0's in its binary representation.
#
#
# For example, The integer 5 is "101" in binary and its complement is "010"
# which is the integer 2.
#
#
# Given an integer n, return its complement.
#
#
# Example 1:
#
#
# Input: n = 5
# Output: 2
# Explanation: 5 is "101" in binary, with complement "010" in binary, which is
# 2 in base-10.
#
#
# Example 2:
#
#
# Input: n = 7
# Output: 0
# Explanation: 7 is "111" in binary, with complement "000" in binary, which is
# 0 in base-10.
#
#
# Example 3:
#
#
# Input: n = 10
# Output: 5
# Explanation: 10 is "1010" in binary, with complement "0101" in binary, which
# is 5 in base-10.
#
#
#
# Constraints:
#
#
# 0 <= n < 10^9
#
#
#
# Note: This question is the same as 476:
# https://leetcode.com/problems/number-complement/
#
#

# @lc code=start
class Solution:
    def bitwiseComplement(self, n: int) -> int:

        if not n:
            return 1

        r = 0

        i = 0

        a = (1, 0)

        while n:

            x = n % 2

            n >>= 1

            r += (a[x])*2**i

            i += 1

        return r

# @lc code=end

Last update: Sep 26, 2023
Created: Sep 26, 2023

Comments