题目链接:https://leetcode-cn.com/problems/add-binary/
题目如下;
class Solution {
public String addBinary(String a, String b) {
//tip:
//1、进位的英文:carry
//2、处理相加问题,先正常加,再判断是否有进位,如有,则加上,并将标志位设为0
//3、将整数转换为字符串的固定语句是:String result=Integer.toString(123456);
int carry=0;//进位
String result="";
int num1,num2,sum;
if(a.length()<b.length()) {result=a;a=b;b=result;}//确保a是长度较长的字符串,b长度较短
result="";
for(int i=b.length()-1,j=a.length()-1;i>=0;i--,j--){//两个数
num1=a.charAt(j)-'0';
num2=b.charAt(i)-'0';
sum=num1+num2;
if(carry==1) {sum+=1;carry=0;}
if(sum>=2) {carry=1;sum=sum%2;}
result=Integer.toString(sum)+result;
}
for(int i=a.length()-b.length()-1;i>=0;i--){//一个数
sum=a.charAt(i)-'0';
if(carry==1) {sum+=1;carry=0;}
if(sum>=2) {carry=1;sum=sum%2;}
result=Integer.toString(sum)+result;
}
if(carry==1) result="1"+result;//没有值数,判断是否有进位
return result;
}
}