您的位置:首页 > 其它

67. Add Binary

2016-07-08 15:47 260 查看
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) {
stack<char> stk;
int lena = a.size()-1;
int lenb = b.size()-1;
int carry = 0;
while (lena >= 0 && lenb >= 0){
int sum = (a[lena] - '0') + (b[lenb] - '0')+carry;
stk.push(sum % 2+'0');
carry = sum / 2;
lena--; lenb--;
}
//注意carry还有可能不为0,继续存在
while (lena >= 0){
int sum = a[lena] - '0' + carry;
stk.push(sum%2+'0');
carry = sum / 2;
lena--;
}
while (lenb >= 0){
int sum = b[lenb] - '0' + carry;
stk.push(sum%2+'0');
carry = sum / 2;
lenb--;
}
if (carry){
stk.push(carry + '0');
}
string res;
while (!stk.empty()){
res.push_back(stk.top());
stk.pop();
}
return res;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: