67. Add Binary
Tags: ‘Math’, ‘String’
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"
Solution
方法1: 正常数字相加 5% 6%
public String addBinary(String a, String b) {
String result = "";
int i = a.length() - 1, j = b.length() - 1, carry = 0;
while (i >= 0 || j >= 0) {
int sum = carry;
if (i >= 0) {
sum += a.charAt(i--) - '0';
}
if (j >= 0) {
sum += b.charAt(j--) - '0';
}
result = "" + sum % 2 + result;
carry = sum / 2;
}
if (carry != 0) {
result = "" + carry + result;
}
return result;
}