友情支持

如果您觉得这个笔记对您有所帮助,看在D瓜哥码这么多字的辛苦上,请友情支持一下,D瓜哥感激不尽,😜

支付宝

微信

有些打赏的朋友希望可以加个好友,欢迎关注D 瓜哥的微信公众号,这样就可以通过公众号的回复直接给我发信息。

wx jikerizhi

公众号的微信号是: jikerizhi因为众所周知的原因,有时图片加载不出来。 如果图片加载不出来可以直接通过搜索微信号来查找我的公众号。

67. Add Binary

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

The input strings are both non-empty and contains only characters 1 or 0.

Example 1:
Input: a = "11", b = "1"
Output: "100"
Example 2:
Input: a = "1010", b = "1011"
Output: "10101"

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

The input strings are both non-empty and contains only characters 1 or 0.

Example 1:

Input: a = "11", b = "1"
Output: "100"

Example 2:

Input: a = "1010", b = "1011"
Output: "10101"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
/**
 * Runtime: 2 ms, faster than 64.49% of Java online submissions for Add Binary.
 * Memory Usage: 38.3 MB, less than 5.62% of Java online submissions for Add Binary.
 */
public String addBinary(String a, String b) {
    StringBuilder result = new StringBuilder();
    int carr = 0;
    for (int i = a.length() - 1, j = b.length() - 1; i >= 0 || j >= 0; i--, j--) {
        int ai = i >= 0 ? a.charAt(i) - '0' : 0;
        int bi = j >= 0 ? b.charAt(j) - '0' : 0;
        int sum = carr + ai + bi;
        result.append(sum & 1);
        carr = (sum >>> 1) & 1;
    }
    result.append(carr > 0 ? carr : "");
    return result.reverse().toString();
}