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^4
a
andb
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;
}
}