[LeetCode] Add Binary
2013-01-27 20:39
309 查看
class Solution { public: string addBinary(string a, string b) { // Start typing your C/C++ solution below // DO NOT write int main() function int m = a.size(); int n = b.size(); vector<int> va(m); vector<int> vb(n); vector<int> vc(max(m, n) + 1); for (int i = 0; i < m; i++) va[i] = a[m - 1 - i] - '0'; for (int j = 0; j < n; j++) vb[j] = b[n - 1 - j] - '0'; int carry = 0; for (int i = 0; i < min(m, n); i++) { int sum = va[i] + vb[i] + carry; vc[i] = sum % 2; carry = sum / 2; } if (m > n) { for (int i = n; i < m; i++) { int sum = va[i] + carry; vc[i] = sum % 2; carry = sum / 2; } } else { for (int i = m; i < n; i++) { int sum = vb[i] + carry; vc[i] = sum % 2; carry = sum / 2; } } int s = max(m, n); if (carry) { vc[s] = carry; s += carry; } string ret = ""; for (int i = 0; i < s; i++) { ret += vc[s - 1 - i] + '0'; } return ret; } };
Small Case: 8ms
Large Case: 16ms
Time: O(n)
Space: O(n)
相关文章推荐
- leetcode笔记:Add Binary
- [Leetcode]#67 Add Binary
- Leetcode 数 Add Binary
- LeetCode-67-Add Binary(二进制相加)
- [leetcode-67]Add Binary(C)
- LeetCode-Add Binary
- LeetCode – Refresh – Add Binary
- [LeetCode 67] Add Binary
- 67.[LeetCode]Add Binary
- leetcode-Add Binary
- LeetCode刷题 | Add Binary
- leetcode--Add Binary
- LeetCode: Add Binary
- 【LeetCode 67_字符串_算术运算】Add Binary
- LeetCode题解——Add Binary
- LeetCode-Add Binary
- Add Binary -- leetcode
- [leetcode] Add Binary
- Java [Leetcode 67]Add Binary
- leetcode 67. Add Binary 二进制相加