class Solution {
public String addBinary(String a, String b) {
int na = a.length(), nb = b.length();
StringBuilder sb = new StringBuilder(Math.max(na, nb) + 1);
int i = na - 1, j = nb - 1, carry = 0;
while (i > -1 || j > -1) {
int ai = 0;
if (i > -1) {
ai = a.charAt(i) - '0';
i--;
}
int bj = 0;
if (j > -1) {
bj = b.charAt(j) - '0';
j--;
}
int sum = carry + ai + bj;
if (sum == 3) {
carry = 1;
sum = 1;
} else if (sum == 2) {
carry = 1;
sum = 0;
} else {
carry = 0;
}
sb.append((char) ('0' + sum));
}
if (carry != 0) {
sb.append('1');
}
return sb.reverse().toString();
}
}
67. 二进制求和
最新推荐文章于 2024-09-06 10:38:06 发布