0371: Sum of Two Integers

Problem Statement

Given two integers a and b, return the sum of the two integers without using the operators + and -.

Example 1:

Input: a = 1, b = 2
Output: 3

Example 2:

Input: a = 2, b = 3
Output: 5

Constraints:

  • -1000 <= a, b <= 1000

Code Solution

class Solution:
    def getSum(self, a, b):
        MASK = 0xFFFFFFFF
        acc = a
        bfr = b
        while bfr:
            carry = ((acc & bfr) << 1) & MASK
            sum_without_carry = (acc ^ bfr) & MASK
            acc = sum_without_carry
            bfr = carry
        return acc if acc <= 2 ** 31 - 1 else ~(acc ^ MASK)