Medium
Adding Two Negabinary Numbers — Python
Full explanation · Time O(n) · Space O(n)
# Time: O(n)
# Space: O(n)
class Solution(object):
def addNegabinary(self, arr1, arr2):
"""
:type arr1: List[int]
:type arr2: List[int]
:rtype: List[int]
"""
result = []
carry = 0
while arr1 or arr2 or carry:
if arr1:
carry += arr1.pop()
if arr2:
carry += arr2.pop()
result.append(carry & 1)
carry = -(carry >> 1)
while len(result) > 1 and result[-1] == 0:
result.pop()
result.reverse()
return result