67. Add Binary
class Solution:
    def addBinary(self, a: str, b: str) -> str:
        a = list(a)
        b = list(b)

        re = [] # save result

        rd = 0 # round
        while a and b:
            s = rd + int(a.pop()) + int(b.pop())
            if s > 1:
                re.append(str(s-2))
                rd = 1
            else:
                re.append(str(s))
                rd = 0

        c = a if a else b

        while c:
            s = rd + int(c.pop())
            if s > 1:
                re.append(str(s-2))
                rd = 1
            else:
                re.append(str(s))
                rd = 0

        if rd == 1:
            re.append('1')

        re.reverse()

        return ''.join(re)

def main():
    s = Solution()

    print(s.addBinary("11", "1")) # 100
    print(s.addBinary("1010", "1011")) # 10101

if __name__ == '__main__':
    main()