LeetCode--67--二進制求和

題目描述:
給你兩個二進制字符串,返回它們的和(用二進制表示)。
輸入爲 非空 字符串且只包含數字 1 和 0。
輸入:
a = “11”, b = “1”
a = “1010”, b = “1011”
輸出:
100
10101
題意:
題目描述
題解
直接搞
代碼:

class Solution {
    public String addBinary(String a, String b) {
        StringBuffer ans = new StringBuffer();
        int n = Math.max(a.length(), b.length()), carry = 0;
        for (int i = 0; i < n; ++i) {
            carry += i < a.length() ? (a.charAt(a.length() - 1 - i) - '0') : 0;
            carry += i < b.length() ? (b.charAt(b.length() - 1 - i) - '0') : 0;
            ans.append((char) (carry % 2 + '0'));
            carry /= 2;
        }
        if (carry > 0) {
            ans.append('1');
        }
        ans.reverse();
        return ans.toString();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章