Add Binary
来源:互联网 发布:chakra linux 怎么样 编辑:程序博客网 时间:2024/05/19 23:53
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
Subscribe to see which companies asked this question
题目:两个表示二进制字符串相加,返回字符串,用二进制表示和。
思想:字符串相加,高地位不好计算,首先反转字符串,然后各位相加,合理维护进位,最高位判断值,并补充。
class Solution {
public:
string addBinary(string a, string b)
{
string res;
const size_t n=a.size()>b.size()?a.size():b.size(); //获取最长的字符串长度
reverse(a.begin(),a.end());
reverse(b.begin(),b.end()); //反转便于运算
int car=0;
for(size_t i=0;i<n;i++){ //低位处理
const int ai=i<a.size()?a[i]-'0':0;
const int bi=i<b.size()?b[i]-'0':0;
const int val = (ai + bi + car)%2;
car = (ai + bi +car) / 2;
res.insert(res.begin(),val+'0'); //每一位都符合逻辑处理
}
if(car ==1)//最高位的维护
res.insert(res.begin(),'1');
return res;
}
};
- 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
- 最小生成树1.0(hdu1233 还是畅通工程)
- android studio linux 环境下网络设置
- 基础6
- 用wampserver搭建HTTP服务(Apache)
- C#更改跳转的URL地址
- Add Binary
- 聪明人不说的10种话
- 多个优秀的Swift开源项目推荐
- python解释器实现及其嵌入式应用:专栏介绍
- Spring基础:快速入门spring cloud(5):断路器之Hystrix
- 电信说的几兆带宽和自己看到的下载/上传速度有什么关系?
- 【杭电OJ从头刷】HDU1001
- [接口设计]从客户端的角度设计后端的接口
- 欢迎使用CSDN-markdown编辑器