给定两个二进制字符串,返回他们的和(用二进制表示)。

输入为非空字符串且只包含数字 1 和 0。

示例 1:

输入: a = "11", b = "1"
输出: "100"
示例 2:

输入: a = "1010", b = "1011"
输出: "10101"

public String addBinary(String a, String b) {

    StringBuilder builder=new StringBuilder();

    int i1=a.length()-1;

    int i2=b.length()-1;

    int cur=0;

    while(i1>=0 || i2>=0 || cur>0 ){

        if(i1>=0) cur+=(a.charAt(i1--)-'0');

        if(i2>=0) cur+=(b.charAt(i2--)-'0');

        builder.append((char)(cur%2+'0'));

        cur = cur/2;

    }

    return builder.reverse().toString();

    }

程浩
21 声望2 粉丝