Leetcode 67. Add Binary
来源:互联网 发布:ext3 windows 编辑:程序博客网 时间:2024/05/29 16:56
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) { if (a.size() > b.size()) return addBinary(b, a); int carry = 0; size_t na = a.size(); size_t nb = b.size(); for (int i = 1; i <= na; ++i) { int sum = a[na - i] - '0' + b[nb - i] - '0' + carry; b[nb - i] = '0' + (sum & 1); carry = sum >> 1; } for (int j = na + 1; j <= nb; ++j) { if (carry == 0) return b; int sum = b[nb - j] - '0' + carry; b[nb - j] = '0' + (sum & 1); carry = sum >> 1; } if (carry == 1) b = string(1, '1') + b; return b; }};
参考后
class Solution {public: string addBinary(string a, string b) { int i = a.size() - 1; int j = b.size() - 1; string ret; int carry = 0; while (i >= 0 || j >= 0 || carry == 1) { carry += (i >= 0) ? a[i--] - '0': 0; carry += (j >= 0) ? b[j--] - '0': 0; ret = char('0' + (carry & 1)) + ret; carry >>= 1; } return ret; }};
阅读全文
0 0
- [LeetCode]67.Add Binary
- LeetCode --- 67. Add Binary
- [Leetcode] 67. Add Binary
- [leetcode] 67.Add Binary
- 【leetcode】67. Add Binary
- [leetcode] 67.Add Binary
- [leetcode] 67. Add Binary
- 【Leetcode】67. Add Binary
- 67. Add Binary LeetCode
- 【LeetCode】67. Add Binary
- leetcode--67. Add Binary
- leetcode 67. Add Binary
- LeetCode 67. Add Binary
- LeetCode *** 67. Add Binary
- leetcode 67. Add Binary
- 【leetcode】67.Add Binary
- LeetCode 67. Add Binary
- LeetCode-67.Add Binary
- D
- 031 矩阵关系专题之等价、相似、合同(线性代数系列结束)
- Gephi初识之简单绘图学习
- 分布式session跨域的两种实现方式
- 简述指针数组 数组指针 函数指针 函数指针数组和函数指针数组的指针
- Leetcode 67. Add Binary
- yum初识
- ROS下遇到.gvfs删不掉及激光雷达连不上电脑问题的解决办法
- 指针及其指针的使用
- 连续序列 最大乘积解题报告
- c++中的const与指针
- Merge、ViewStub标签总结
- HDU5285:wyh2000 and pupil(二分图染色 & 贪心)
- PAT 1036. 跟奥巴马一起编程(15)