Add Binary —LeetCode
来源:互联网 发布:plc编程及应用 第4版 编辑:程序博客网 时间:2024/05/16 07:52
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
1、
string addBinary(string a, string b) { if(a.size()==0) return b; if(b.size()==0) return a; int carry=0; if(b.size()>a.size()) swap(a,b); int indexA=a.size()-1; int indexB=b.size()-1; for(;indexA>=0;indexA--) { if(indexB>=0) { if(a.at(indexA)+b.at(indexB)+carry-2*'0'==0) ; else { if(a.at(indexA)+b.at(indexB)+carry-2*'0'==1) { a.at(indexA)='1'; carry=0; } else { if(a.at(indexA)+b.at(indexB)+carry-2*'0'==2) a.at(indexA)='0'; else a.at(indexA)='1'; carry=1; } } indexB--; } else { if(a.at(indexA)+carry-'0'==0); else { if(a.at(indexA)+carry-'0'==1) { a.at(indexA)='1'; carry=0; } else { a.at(indexA)='0'; carry=1; } } } } if(carry==1) a.insert(a.begin(),'1'); return a; }
2、
string addBinary(string a, string b) { int carry=0; int indexA=a.size()-1; int indexB=b.size()-1; string result=""; while(indexA>=0||indexB>=0||carry>0) { carry+=(indexA>=0?a.at(indexA--)-'0':0)+(indexB>=0?b.at(indexB--)-'0':0); result.insert(result.begin(),carry%2?'1':'0'); carry=carry/2; } return result; }
0 0
- Add Binary —LeetCode
- LeetCode——Add Binary
- LeetCode——Add Binary
- Python学习——leetcode(Add Binary)
- Add Binary —— Leetcode(重做)
- leetcode 067 —— Add Binary
- LeetCode题解——Add Binary
- Leetcode 67 —— Add Binary
- Leetcode——67. Add Binary
- Leetcode Problem.67—Add Binary
- LeetCode 之 Add Binary — C 实现
- Sum—LeetCode-67 Add Binary
- LeetCode: Add Binary
- [Leetcode] Add Binary
- LeetCode Add Binary
- Leetcode: Add Binary
- [Leetcode] Add Binary
- LeetCode : Add Binary
- 0ctf simpleapk writeup
- iOS 文件下载 (AFNetwork 三方框架 文件名中文字符乱码问题解决)四
- #笔记#圣思园 JavaSE 第28讲——Object类详解
- 杭电 HDU ACM 1003 Max Sum
- 顺序栈
- Add Binary —LeetCode
- 第1章 第7题
- android序列化的使用
- 随机读取文件--RandomAccessFile的应用实例
- Java图片处理工具类(裁剪、缩放等)
- Minimum Window Substring -- leetcode
- C 语言 之 如何实现一个malloc
- 归并排序的C++实现
- Python:给List中元素赋值和for循环的写法