67. 二进制求和

110 阅读1分钟

题目

image.png

代码

  • 注意是/2 %2
  • 注意最后reverse一下
class Solution {
    public String addBinary(String a, String b) {
        StringBuffer sb = new StringBuffer();
        int i = a.length() - 1, j = b.length() - 1;
        int carry = 0;
        while (i >= 0 || j >= 0 || carry != 0) {
            int num1 = i < 0 ? 0 : a.charAt(i) - '0';
            int num2 = j < 0 ? 0 : b.charAt(j) - '0';
            int sum = num1 + num2 + carry;
            int cur = sum % 2;//注意是2
            carry = sum / 2;//注意是2
            sb.append(String.valueOf(cur));
            i--;
            j--;
        }
        return sb.reverse().toString();//注意reverse一下
    }
}