#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param A string字符串
# @param B string字符串
# @return string字符串
#
class Solution:
    def binaryAdd(self, A: str, B: str) -> str:
        # write code here
        m, n = len(A), len(B)
        i, j, dec, s = m - 1, n - 1, 0, ""
        while i >= 0 or j >= 0:#从后到前依次相加
            if i < 0:
                a = int(B[j])+dec
                dec = a//2
                s = str(a%2)+s
                j -= 1
            elif j<0:
                a = int(A[i])+dec
                dec = a//2
                s = str(a%2)+s
                i -= 1
            else:
                a = int(A[i])+int(B[j])+dec
                dec = a//2
                s = str(a%2)+s
                i -= 1
                j -= 1
        if dec:#进位符剩余1
            s = str(dec)+s
        return s