文章目录
题目
示例 1:
示例 2:
提示:
一、解题及代码
模拟运算:
初始化carry=0记录是否有进位
代码如下:
public String addBinary(String a, String b) {
StringBuilder res = new StringBuilder();
//从末位开始计算,所以最后需要反转res
int i = a.length()-1;
int j = b.length()-1;
int carry = 0 ;
while(i>=0||j>=0){
int digit1 = i>=0 ? a.charAt(i--)-'0' : 0;
int digit2 = j>=0 ? b.charAt(j--)-'0' : 0;
int sum = digit1 + digit2 +carry;
carry = sum>=2 ? 1:0;
sum = sum>=2 ? sum-2:sum;
res.append(sum);
}
if(carry==1) res.append(1);
return res.reverse().toString();
}
侵删