题目:
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) { string res(a.size()+b.size(),‘0‘); int i = a.size()-1; int j = b.size()-1; int k = res.size()-1; int carry = 0; while(i >= 0 || j >= 0 || carry){ int sum = 0; if (i >= 0) sum += a[i--] - ‘0‘; if (j >= 0) sum += b[j--] - ‘0‘; if (carry) sum += carry; res[k--] = ‘0‘ + (sum%2); carry = sum / 2; } std::size_t pos = res.find_first_not_of(‘0‘); return pos == std::string::npos ? "0":res.substr(pos); } };
时间: 2024-11-09 22:07:30