[LeetCode] Add Binary
来源:互联网 发布:java考试题库 编辑:程序博客网 时间:2024/05/13 18:32
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] Add Binary
- LeetCode Add Binary
- Leetcode: Add Binary
- [Leetcode] Add Binary
- LeetCode : Add Binary
- LeetCode Add Binary
- [LeetCode] Add Binary
- leetcode 58: Add Binary
- leetcode Add Binary
- [LeetCode] Add Binary
- 【leetcode】Add Binary
- [LeetCode]Add Binary
- [leetcode]Add Binary
- LeetCode-Add Binary
- [leetcode] Add Binary
- LeetCode - Add Binary
- leetcode:Add Binary
- ubuntu12.04下安装JDK7
- WinCE中串口通讯的调试方法----串口分离软件的使用
- 根据classid值查找该dll或者ocx控件
- Prolog 最长公共子序列 LCS 问题
- 9714 圣诞礼物
- [LeetCode] Add Binary
- 9718 整数因子分解
- 计算a[0]*a[1]*...*a[n-1]/a[i]
- 8086汇编语言的DEBUG命令
- 总结下Oracle 中的Insert用法
- 用MDK生成bin文件的步骤及方法
- Errors running builder 'Android Pre Compiler' on project
- Hibernate继承映射
- Creo二次开发--函数(3)--菜单类函数