题目描述
题目难度:Easy
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”
AC代码
class Solution {
public String addBinary(String a, String b) {
int len1 = a.length();
int len2 = b.length();
//if(len)
StringBuilder sb = new StringBuilder();
int carry = 0;
for(int i = len1 - 1, j = len2 - 1;i >= 0 || j >= 0;i--, j--){
if(i < 0){
sb.append((b.charAt(j) - '0' + carry) % 2);
carry = (b.charAt(j) - '0' + carry) / 2;
}
else if(j < 0){
sb.append((a.charAt(i) - '0' + carry) % 2);
carry = (a.charAt(i) - '0' + carry) / 2;
}
else{
sb.append((a.charAt(i) - '0' + b.charAt(j) - '0' + carry) % 2);
carry = ((a.charAt(i) - '0') + (b.charAt(j) - '0') + carry) / 2;
}
}
if(carry == 1) sb.append('1');
return sb.reverse().toString();
}
}