Skip to content

67. Add Binary

Jacky Zhang edited this page Nov 2, 2016 · 2 revisions

Given two binary strings, return their sum (also a binary string).

For example,
a = "11"
b = "1"
Return "100".

String类题目。

可以转换为两个数字相加,从末尾的数字算起。

public class Solution {
    public String addBinary(String a, String b) {
        StringBuilder sb = new StringBuilder();
        int aLen = a.length();
        int bLen = b.length();
        int i = 0;
        int carry = 0;
        while(i < aLen || i < bLen) {
            int aNum = i < aLen ? a.charAt(aLen-1-i)-'0' : 0;
            int bNum = i < bLen ? b.charAt(bLen-1-i)-'0' : 0;
            int temp = aNum + bNum + carry;
            sb.append((char)('0'+temp%2));
            carry = temp / 2;
            i++;
        }
        if(carry == 1) sb.append('1');
        return sb.reverse().toString();
    }
}
Clone this wiki locally