二进制求和

67. 二进制求和

给你两个二进制字符串 ab ,以二进制字符串的形式返回它们的和。

示例 1:

1
2
输入:a = "11", b = "1"
输出:"100"

示例 2:

1
2
输入:a = "1010", b = "1011"
输出:"10101"

提示:

  • 1 <= a.length, b.length <= 104
  • ab 仅由字符 '0''1' 组成
  • 字符串如果不是 "0" ,就不含前导零
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Solution {
public String addBinary(String s1, String s2) {
char[] nums1 = s1.toCharArray();
char[] nums2 = s2.toCharArray();
int i = nums1.length-1;
int j = nums2.length-1;
int add = 0;
StringBuilder sb = new StringBuilder();
while(i >= 0 || j >= 0 || add != 0){
int a = i >= 0 ? nums1[i] - '0': 0;
int b = j >= 0 ? nums2[j] - '0': 0;
int sum = a + b + add;
sb.append(sum%2);
add = sum/2;
i--;
j--;
}
return sb.reverse().toString();
}
}

二进制求和
http://example.com/2023/06/15/算法/数学相关/9. 二进制求和/
作者
PALE13
发布于
2023年6月15日
许可协议