Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
public class Solution { public String addBinary(String a, String b) { int alen = a.length(); int blen = b.length(); //表示进位 int add=0; int i; StringBuilder result = new StringBuilder(); for (i=0;i<alen && i<blen;i++) { int aIndex = alen-1-i; int bIndex = blen-1-i; int sum = add+a.charAt(aIndex)-'0'+b.charAt(bIndex)-'0'; if (sum > 1) { add = sum / 2; sum = sum % 2; } else { //这里进位注意要清零 add = 0; } result.append(sum); } while (i<alen) { int sum = add+a.charAt(alen-1-i)-'0'; if (sum > 1) { add = sum / 2; sum = sum % 2; } else { add = 0; } result.append(sum); i++; } while (i<blen) { int sum = add+b.charAt(blen-1-i)-'0'; if (sum > 1) { add = sum / 2; sum = sum % 2; } else { add = 0; } result.append(sum); i++; } if (add!=0) { result.append(add); } return result.reverse().toString(); } }