您的位置:首页 > 其它

LeetCode-Add Binary

2013-08-07 20:32 302 查看
class Solution {
public:
string addBinary(string a, string b) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
string strSum;
if (a.size() == 0 || b.size() == 0)
{
return a.size() != 0 ? a : b;
}
int carry = 0;
int i, j;
for (i = a.size() - 1, j = b.size() - 1; i >= 0 && j >= 0; --i, --j)
{
int sum = a[i] - '0' + b[j] - '0' + carry;
char ch = (sum & 1) + '0';
carry = sum >> 1;
strSum += ch;
}
while (i >= 0)
{
int sum = a[i--] - '0' + carry;
char ch = (sum & 1) + '0';
carry = sum >> 1;
strSum += ch;
}
while (j >= 0)
{
int sum = b[j--] - '0' + carry;
char ch = (sum & 1) + '0';
carry = sum >> 1;
strSum += ch;
}
if (carry == 1)
{
strSum += '1';
}
reverse(strSum.begin(), strSum.end());
return strSum;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: