[Python] Easy to understand solution
\tarr1[i] + arr2[i] + carry[i] == -1\n\t\t\t\t-> ans.append(1)\n\t\t\t\t-> carry[i+1] = 1\n \tarr1[i] + arr2[i] + carry[i] == 0\n\t\t\t\t-> ans.append(0)\n\t\t\
* \tarr1[i] + arr2[i] + carry[i] == -1\n\t\t\t\t-> ans.append(1)\n\t\t\t\t-> carry[i+1] = 1\n* \tarr1[i] + arr2[i] + carry[i] == 0\n\t\t\t\t-> ans.append(0)\n\t\t\t\t-> carry[i+1] = 0\n* \tarr1[i] + arr2[i] + carry[i] == 1\n\t\t\t\t-> ans.append(1)\n\t\t\t\t-> carry[i+1] = 0\n* \tarr1[i] + arr2[i] + carry[i] == 2\n\t\t\t\t-> ans.append(0)\n\t\t\t\t-> carry[i+1] = -1\n* \tarr1[i] + arr2[i] + carry[i] == 3\n\t\t\t\t-> ans.append(1)\n\t\t\t\t-> carry[i+1] = -1\n\t\t\t\t\n\t\t\t\t\t\t\t---------------------------\n\t\t\t\t\t\t\tcarry | 0 |-1 | 0 |-1 | 0 | \n\t\t\t\t\t\t\tarr1  | 1 | 1 | 1 | 1 | 1 |\n\t\t\t\t\t\t\tarr2  |   |   | 1 | 0 | 1 |\n\t\t\t\t\t\t\tans   | 1 | 0 | 0 | 0 | 0 |\n\t\t\t\t\t\t\t---------------------------\n\n```\nclass Solution(object):\n    def addNegabinary(self, arr1, arr2):\n        """\n        :type arr1: List[int]\n        :type arr2: List[int]\n        :rtype: List[int]\n        """\n        ans = []\n        carry = 0\n        while arr1 or arr2 or carry:\n            val1, val2 = (arr1 or [0]).pop(), (arr2 or [0]).pop()\n            if val1 + val2 + carry == -1:\n                ans.append(1)\n                carry = 1\n            elif val1 + val2 + carry == 0:\n                ans.append(0)\n                carry = 0\n            elif val1 + val2 + carry == 1:\n                ans.append(1)\n                carry = 0\n            elif val1 + val2 + carry == 2:\n                ans.append(0)\n                carry = -1\n            else:\n                ans.append(1)\n                carry = -1\n        \n        while len(ans) > 1 and ans[-1] == 0:\n            ans.pop()\n        \n        return ans[::-1]\n```
[]