import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param A string字符串
     * @param B string字符串
     * @return string字符串
     */
    public String binaryAdd (String A, String B) {
        // write code here
        // 解题思路:1.分别对2个字符串反转
        // 2.将字符转为int
        // 3.相加对2取整和取余
        // 4.拼接字符串,将拼接结果反转
        String reverseA =   new StringBuilder().append(A).reverse().toString();
        String reverseB =   new StringBuilder().append(B).reverse().toString();

        int size = Math.max(reverseA.length(), reverseB.length());
        char[] charA = reverseA.toCharArray();
        char[] charB = reverseB.toCharArray();

        StringBuilder builder = new StringBuilder();

        int s = 0;
        for (int i = 0; i < size; i++) {
            int a = charA.length <= i ? 0 : Integer.valueOf(String.valueOf(charA[i]));
            int b = charB.length <= i ? 0 : Integer.valueOf(String.valueOf(charB[i]));
            int sum = a + b + s;
            s = sum / 2;
            builder.append(sum % 2);
        }

        if (s != 0) {
            builder.append(s);
        }

        return builder.reverse().toString();
    }
}