67. Add Binary
2015-11-02 14:58
344 查看
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100".
For example,
a = "11"
b = "1"
Return "100".
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; } } };
相关文章推荐
- UESTC 760 方方是个坏孩子 有限制的最大连续和
- Android Studio教程07-SVN的使用(项目管理与控制)
- 链表--查看链表是否含有环(不一样的方法)
- 用charles抓包乐视app点播协议和是否使用P2P
- 用条件格式提高数据易用性(8)-“数据条”设置 设计要点:可视化、条件格式
- chrome 不允许 textarea 可更改大小
- html5实现弹出提示框,并且伴随遮罩层并且可以关闭弹出框
- SingleNumber
- grep命令的使用
- Cookie同域,跨域单点登录
- python 2.6 替换安装Python2.7
- MAVEN打包可运行jar包
- 用条件格式提高数据易用性(7)-“数据条”基础 设计要点:可视化、条件格式
- 单例模式
- 影像之结构化特征
- MBProgressHUD的基本使用
- 求学随记——珍惜时间≠赶进度
- 电视节目必是可搜索的
- CTP开发——期权操作
- 芒果iOS开发之duplicate symbols for architecture x86_64错误