友情支持
如果您觉得这个笔记对您有所帮助,看在D瓜哥码这么多字的辛苦上,请友情支持一下,D瓜哥感激不尽,😜
有些打赏的朋友希望可以加个好友,欢迎关注D 瓜哥的微信公众号,这样就可以通过公众号的回复直接给我发信息。
公众号的微信号是: 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();
}