1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
public class AddBinary { public String addBinary(String a, String b) { StringBuilder result = new StringBuilder(); int pointerA = a.length()-1; int pointerB = b.length()-1; int carry = 0; while(pointerA>=0 || pointerB>=0){ int sum = carry; if(pointerA>=0){ sum += (a.charAt(pointerA)-'0'); pointerA--; } if(pointerB>=0){ sum += (b.charAt(pointerB)-'0'); pointerB--; } result.append(sum%2); carry = sum/2; } if(carry!=0){ result.append('1'); } return result.reverse().toString(); } }
|