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) { // convert to int if(a == null || b == null) return null; int x = 0; for(int i=0; i<a.length(); i++){ x <<= 1; x |= a.charAt(i) - '0'; } int y = 0; for(int i=0; i<b.length(); i++){ y <<= 1; y |= b.charAt(i) - '0'; } int sum = x + y; // !!! if sum == 0 if(sum == 0) return "0"; StringBuffer sb = new StringBuffer(); while(sum > 0){ int val = sum & 0x1; sb.append(val); sum >>= 1; } sb.reverse(); return sb.toString(); } }