剑指 Offer II 002. 二进制加法
难度简单49收藏分享切换为英文接收动态反馈
给定两个 01 字符串 a 和 b ,请计算它们的和,并以二进制字符串的形式输出。
输入为 非空 字符串且只包含数字 1 和 0。
示例 1:
输入: a = "11", b = "10"
输出: "101"示例 2:
输入: a = "1010", b = "1011"
输出: "10101"提示:
- 每个字符串仅由字符
'0'或'1'组成。 1 <= a.length, b.length <= 10^4- 字符串如果不是
"0",就都不含前导零。
题解:
public class Solution {
public String addBinary(String a, String b) {
//调用Stringbuilder 的reserse()方法
StringBuilder result=new StringBuilder();
int i=a.length()-1;
int j=b.length()-1;
int carry=0;
while(i>=0 || j>=0){
//当只有一个i或j走完后的情况
int digitA=i>=0?a.charAt(i--)-'0':0;
int digitB=j>=0?b.charAt(j--)-'0':0;
int sum=digitA+digitB+carry;
carry=sum>=2?1:0;
sum=sum>=2?sum-2:sum;
result.append(sum);
}
if(carry==1){
result.append(1);
}
return result.reverse().toString();
}
} 

华纳圣淘沙公司开户新手教程
零基础学会(183-8890-9465薇-STS5099)
华纳圣淘沙公司开户
华纳圣淘沙公司开户保姆级教程(183-8890-9465薇-STS5099)
一步步教你开通华纳圣淘沙公司账户(183-8890-9465薇-STS5099)
华纳圣淘沙公司开户分步图解
首次开户必看:(183-8890-9465薇-STS5099)
华纳圣淘沙全攻略
华纳圣淘沙公司开户实操手册(183-8890-9465薇-STS5099)
华纳圣淘沙开户流程视频教程
手把手教学:(183-8890-9465薇-STS5099)
华纳圣淘沙公司开户
华纳圣淘沙公司开户完全指南(183-8890-9465薇-STS5099)