import java.util.*;
public class Solution {
public String binaryAdd (String A, String B) {
String res="";
char[] a=A.toCharArray();
char[] b=B.toCharArray();
int lengthA=a.length,lengthB=b.length;
Stack<Integer> stack=new Stack<>(); //存放结果
int carry=0; //表示进位
//只有A、B中每一个数都遍历完,且进位为0,循环才结束
while(lengthA!=0||lengthB!=0||carry!=0){
int tmpA=(lengthA==0)?0:(a[--lengthA]-'0');
int tmpB=(lengthB==0)?0:(b[--lengthB]-'0');
int sum=tmpA+tmpB+carry;
carry=sum/2;
stack.push(sum%2);
}
while(!stack.isEmpty()){
res+=stack.pop();
}
return res;
}
}