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; } }