题目
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
实现
class Solution {
public:
string addBinary(string a, string b) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
string res ="";
int i = a.length()-1;
int j = b.length()-1;
int aug = 0;
int sum = 0;
while(i>=0 || j>=0)
{
sum = aug;
if(i>=0)
sum+=a[i]-'0';
if(j>=0)
sum+=b[j]-'0';
aug = sum/2;
res.insert(0,1,'0'+sum%2);
i--;
j--;
}
if(aug)
res.insert(0,1,'1');
return res;
}
};
最新 java
public class Solution {
public String addBinary(String a, String b) {
StringBuilder sb = new StringBuilder("");
if(a == null || b == null){
return "";
}
int i = a.length()-1;
int j = b.length()-1;
int carry = 0;
int sum = 0;
while(i >= 0 || j >= 0){
sum = carry;
if(i >= 0){
sum += a.charAt(i)-'0';
}
if(j >= 0){
sum += b.charAt(j)-'0';
}
carry = sum/2;
sb.insert(0, sum%2);
i--;
j--;
}
if(carry > 0){
sb.insert(0, '1');
}
return sb.toString();
}
}