您的位置:首页 > 其它

67. Add Binary

2016-07-02 21:38 274 查看
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) {
reverse(a.begin(), a.end());
reverse(b.begin(), b.end());
int size = max(a.size(), b.size());
string res(size + 1, '0');
int count = 0;
while (count < size){
int m = 0, n = 0;
if (count < a.size())
m = a[count]-'0';
if (count < b.size())
n = b[count] - '0';
int tmp = m + n;
res[count + 1] = (res[count + 1] - '0') + ((res[count]-'0'+tmp) / 2) + '0';
res[count] = (res[count] + tmp) % 2 +'0';
count++;
}
reverse(res.begin(), res.end());
if (res[0] == '0')
return res.substr(1);
return res;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: