Add Binary
来源:互联网 发布:知乎体格式 编辑:程序博客网 时间:2024/06/10 04:50
-----QUESTION-----
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
-----SOLUTION-----
class Solution {public: string addBinary(string a, string b) { int aLen = a.length(); int bLen = b.length(); bool carry = false; int aPointer = aLen-1; int bPointer = bLen-1; if(aLen >= bLen){ while(bPointer >=0) { if(!carry){ if(a[aPointer] == '0' && b[bPointer] == '0') { a[aPointer] = '0'; } else if(a[aPointer] == '1' && b[bPointer] == '1') { a[aPointer] = '0'; carry = true; } else { a[aPointer] = '1'; } } else { if(a[aPointer] == '0' && b[bPointer] == '0') { a[aPointer] = '1'; carry = false; } else if(a[aPointer] == '1' && b[bPointer] == '1') { a[aPointer] = '1'; } else { a[aPointer] = '0'; } } aPointer--; bPointer--; } while(aPointer>=0 && carry) { if(a[aPointer] == '0') { a[aPointer] = '1'; carry = false; break; } a[aPointer]='0'; aPointer--; } if(carry) { a = "1" + a; } return a; } else{ while(aPointer >=0) { if(!carry){ if(a[aPointer] == '0' && b[bPointer] == '0') { b[bPointer] = '0'; } else if(a[aPointer] == '1' && b[bPointer] == '1') { b[bPointer] = '0'; carry = true; } else { b[bPointer] = '1'; } } else { if(a[aPointer] == '0' && b[bPointer] == '0') { b[bPointer] = '1'; carry = false; } else if(a[aPointer] == '1' && b[bPointer] == '1') { b[bPointer] = '1'; } else { b[bPointer] = '0'; } } aPointer--; bPointer--; } while(bPointer>=0 && carry) { if(b[bPointer] == '0') { b[bPointer] = '1'; carry = false; break; } b[bPointer] = '0'; bPointer--; } if(carry) { b = "1" + b; } return b; } }};
0 0
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- 如何查询占用端口的程序进程
- codeforces #436 A Feed with Candy(贪心)
- GPU并行编程方法
- SQLAlchemy实战详解
- SQL点滴26—常见T-SQL面试解析
- Add Binary
- Android service详解(一)
- hdu3468 splay
- mongoVUE 数据的json格式导入导出
- zoj 2158 Truck History(最小生成树))
- 为什么采用Always On SSL?
- 揭开Socket编程的面纱
- C/C++面试编程题
- 【刷题小记97】兄弟郊游问题