67. Add Binary
来源:互联网 发布:淘宝怎么设置花呗付款 编辑:程序博客网 时间:2024/05/22 15:22
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 ans; int ia = a.size()-1, ib = b.size()-1; while (ia >= 0 || ib >= 0) { if (ia >= 0 && ib >= 0) { ans.insert(ans.begin(), a[ia] + b[ib] - '0'); ia--; ib--; } else if (ia < 0 && ib >= 0) { ans.insert(ans.begin(), b[ib]); ib--; } else if (ia >= 0 && ib < 0) { ans.insert(ans.begin(), a[ia]); ia--; } } for (int i = ans.size() - 1; i > 0; i--) { int next = (ans[i] - '0') / 2; ans[i] = (ans[i] - '0') % 2 + '0'; ans[i-1] += next; } if (ans[0] >= '2') { char start = (ans[0] - '0') / 2 + '0'; ans[0] = (ans[0] - '0') % 2 + '0'; ans.insert(ans.begin(), start); } return ans; }};
再贴一个discussion里的一个高票解法,思路相似,但少了很多单独处理的步骤,十分简洁:
class Solution{public: string addBinary(string a, string b) { string s = ""; int c = 0, i = a.size() - 1, j = b.size() - 1; while(i >= 0 || j >= 0 || c == 1) { c += i >= 0 ? a[i --] - '0' : 0; c += j >= 0 ? b[j --] - '0' : 0; s = char(c % 2 + '0') + s; c /= 2; } return s; }};
阅读全文
0 0
- [LeetCode]67.Add Binary
- LeetCode --- 67. Add Binary
- [Leetcode] 67. Add Binary
- [leetcode] 67.Add Binary
- 67. Add Binary
- 【leetcode】67. Add Binary
- 67. Add Binary
- [leetcode] 67.Add Binary
- [leetcode] 67. Add Binary
- 67. Add Binary
- 67. Add Binary
- 【Leetcode】67. Add Binary
- 67. Add Binary
- 67. Add Binary LeetCode
- 67. Add Binary
- 【LeetCode】67. Add Binary
- 67. Add Binary
- 67. Add Binary
- 【安全牛学习笔记】skipfish
- 编写高质量iOS与OS X代码的52个有效方法 读后感
- 基于springboot+bootstrap+mysql+redis搭建一套完整的权限架构【三】【整合swagger2和druid】
- 编写多线程程序,模拟多个人通过一个山洞。这个山洞每次只能通过一个人,每个人通过山洞的时间为2秒(sleep)。随机生成10个人,都要通过此山洞,用随机值对应的字符串表示人名,打印输出每次通过山洞的人名
- 【Scikit-Learn 中文文档】四十八:数据转换和预测变量的组合模型- 关于科学数据处理的统计学习教程
- 67. Add Binary
- [Leetcode] 505. The Maze II 解题报告
- vim编辑器操作命令大全-绝对全
- 第一章作业1-数据结构基本概念
- key对应多值
- iOS编程基础-OC(八)-运行时系统的结构
- 文件上传时只接收指定的文件类型
- websocket 心得
- 新手java web 技术交流群