Loading...https://leetcode.com/problems/add-binary/
题目描述Given two binary strings a and b, return their sum as a binary string.
Example 1:
Input: a = "11", b = "1" Output: "100"
Example 2:
Input: a = "1010", b = "1011" Output: "10101"
Constraints:
1 <= a.length, b.length <= 10^4a and b consist only of '0' or '1' characters.Each string does not contain leading zeros except for the zero itself.
解题思路 【C++】class Solution {
public:
string addBinary(string a, string b) {
int i = a.length() - 1;
int j = b.length() - 1;
string ans;
int carry = 0;
while (i >= 0 || j >= 0 || carry){
if (i >= 0) {
carry += a[i] - '0';
i--;
}
if (j >= 0) {
carry += b[j] - '0';
j--;
}
ans = (char)(carry % 2 + '0') + ans;
carry = carry / 2;
}
return ans;
}
};
【Java】
class Solution {
public String addBinary(String a, String b) {
int i = a.length() - 1;
int j = b.length() - 1;
String ans = "";
int carry = 0;
while (i >= 0 || j >= 0 || carry > 0){
if (i >= 0) {
carry += a.charAt(i) - '0';
i--;
}
if (j >= 0) {
carry += b.charAt(j) - '0';
j--;
}
ans = (char)(carry % 2 + '0') + ans;
carry = carry / 2;
}
return ans;
}
}


![LeetCode-67. Add Binary [C++][Java] LeetCode-67. Add Binary [C++][Java]](http://www.mshxw.com/aiimages/31/778144.png)
