博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Add Binary
阅读量:4653 次
发布时间:2019-06-09

本文共 1117 字,大约阅读时间需要 3 分钟。

Given two binary strings, return their sum (also a binary string).

For example,

a = "11"
b = "1"
Return "100".

Analyse: Using XOR(^) to compute the result of the bit-add and line 22 to reserve the carry bit. Be cautious about the last carry.

1 class Solution { 2 public: 3     string addBinary(string a, string b) { 4         int carry = 0; 5         string result; 6         for(int i = a.length() - 1, j = b.length() - 1; i >= 0 || j >= 0; i--, j--){ 7             int sa, sb; 8             if(i < 0) { 9                 sa = 0; 10                 sb = b[j] - '0';11             }12             else if(j < 0){13                 sb = 0; 14                 sa = a[i] - '0';15             }16             else{17                 sa = a[i] - '0';18                 sb = b[j] - '0';19             }20             char current = sa ^ sb ^ carry + '0';21             result = current + result;22             if((carry + sa + sb) / 2) carry = 1;23             else carry = 0;24         }25         if(carry) result = '1' + result;26         return result;27     }28 };

 

转载于:https://www.cnblogs.com/amazingzoe/p/4436905.html

你可能感兴趣的文章
JQuery绑定和注销事件
查看>>
搜索引擎易用性
查看>>
git的使用
查看>>
android手机截屏
查看>>
JAVA设计模式之观察者模式
查看>>
MySQL的循环语句使用总结
查看>>
align-conten和align-items之间的区别
查看>>
Java
查看>>
防止SQL注入的登录页面
查看>>
生成和解析txt文件
查看>>
stm32F429启动时钟配置
查看>>
正则表达式移除首部尾部多余字符
查看>>
iOS截取视频缩略图的两种方法
查看>>
柯里化函数之Javascript
查看>>
WTL安装
查看>>
我的软考之路(四)——数据结构和算法(2)树和二叉树
查看>>
c语言发挥帕斯卡三角
查看>>
UIControl-IOS开发
查看>>
Chord算法(原理)
查看>>
扩展点(持续更新......)
查看>>