给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 Java
时间: 2023-11-05 21:27:54 浏览: 81
以下是实现该功能的 Java 代码:
```java
public class Solution {
public String addBinary(String a, String b) {
StringBuilder sb = new StringBuilder();
int carry = 0;
int i = a.length() - 1, j = b.length() - 1;
while (i >= 0 || j >= 0) {
int sum = carry;
if (i >= 0) {
sum += a.charAt(i) - '0';
i--;
}
if (j >= 0) {
sum += b.charAt(j) - '0';
j--;
}
sb.append(sum % 2);
carry = sum / 2;
}
if (carry != 0) {
sb.append(carry);
}
return sb.reverse().toString();
}
}
```
该代码使用 StringBuilder 存储结果,使用两个指针 i 和 j 分别指向 a 和 b 的最后一位,使用 carry 存储进位,从后向前遍历 a 和 b,将每一位相加,并加上进位,将结果取模后存入 StringBuilder 中。最后,如果还有进位,将其加入 StringBuilder 中。最后,将 StringBuilder 反转后转换为字符串并返回。
阅读全文