Add Binary (E)
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"
题意
实现以字符串表示的二进制加法。
思路
直接从后往前按位相加即可。
代码实现
class Solution {
public String addBinary(String a, String b) {
int i = a.length() - 1, j = b.length() - 1;
int carry = 0;
StringBuilder bits = new StringBuilder();
while (i >= 0 || j >= 0 || carry == 1) {
int sum = carry;
if (i >= 0) {
sum += a.charAt(i--) - '0';
}
if (j >= 0) {
sum += b.charAt(j--) - '0';
}
bits.append(sum % 2);
carry = sum / 2;
}
return bits.reverse().toString();
}
}
本文介绍了一种解决二进制字符串加法问题的方法。通过从后往前按位相加,实现了两个二进制字符串的加法运算。示例包括输入11和1,输出100;输入1010和1011,输出10101。
882

被折叠的 条评论
为什么被折叠?



