Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100".
a = "11"
b = "1"
Return "100".
public class Solution {
//Time: O(n)
public String addBinary(String a, String b) {
if (a.length() == 0) {
return b;
}
if (b.length() == 0) {
return a;
}
StringBuilder res = new StringBuilder();
int m = a.length() - 1;
int n = b.length() - 1;
int carry = 0;
while (m >= 0 || n >= 0) {
if (m >= 0) {
carry += a.charAt(m) == '1' ? 1 : 0;
m--;
}
if (n >= 0) {
carry += b.charAt(n) == '1' ? 1 : 0;
n--;
}
res.append(carry % 2);
carry /= 2;
}
if (carry == 1) {
res.append(1);
}
res.reverse();
return res.toString();
}
}
No comments:
Post a Comment