67. Add Binary
1 class Solution { 2 public String addBinary(String a, String b) { 3 if(a.length() == 0 && b.length() == 0) return null; 4 StringBuilder sb1 = new StringBuilder(a); 5 sb1.reverse(); 6 StringBuilder sb2 = new StringBuilder(b); 7 sb2.reverse(); 8 StringBuilder res = new StringBuilder(); 9 int carry = 0; 10 for(int i = 0; i < Math.max(sb1.length(), sb2.length()); i++) { 11 if(i >= sb2.length()) { 12 res.append((sb1.charAt(i) - '0' + carry) % 2); //注意carry要在 下面 更新 13 carry = (sb1.charAt(i) - '0' +carry) / 2; 14 15 }else if(i >= sb1.length()){ 16 res.append((sb2.charAt(i) - '0' + carry) % 2); 17 carry = (sb2.charAt(i) - '0' +carry) / 2; 18 }else { 19 res.append((sb1.charAt(i) - '0' + sb2.charAt(i) - '0' + carry) % 2); 20 carry = (sb1.charAt(i) - '0' + sb2.charAt(i) - '0' + carry) / 2; 21 } 22 } 23 if(carry == 1) { 24 res.append(1); 25 } 26 return res.reverse().toString(); 27 28 } 29 }