题目:
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
思路:字符串的叠加,注意进位
string AddBinary(string& first,string& second)
{
string result;
int carray =0;
int i=first.length()-1;
int j = second.length()-1;
int tmp;
for(;i>=0&&j>=0;i--,j--)
{
if(first[i] >='2' || second[j]>='2')
return result;
tmp = carray+(first[i]-'0')+(second[j]-'0');
if(tmp >=2)
{
carray =1;
tmp =0;
}
else
carray =0;
result += char(tmp+'0');
}
for(;i>=0;i--)
{
if(carray ==0)
result += first[i];
else
{
tmp = carray+(first[i]-'0');
if(tmp >=2)
{
carray =1;
tmp =0;
}
else
carray =0;
result += char(tmp+'0');
}
}
for(;j>=0;j--)
{
if(carray ==0)
result += second[j];
else
{
tmp = carray+(second[j]-'0');
if(tmp >=2)
{
carray =1;
tmp =0;
}
else
carray =0;
result += char(tmp+'0');
}
}
reverse(result.begin(),result.end());
return result;
}