Add Binary
2015-07-22 11:57
218 查看
class Solution {
public:
string addBinary(string a, string b) {
int len1=a.size();
int len2=b.size();
int min1=min(len1,len2);
int cf=0;
string s;
reverse(a.begin(),a.end()); // 先逆置
reverse(b.begin(),b.end()); //
for(int i=0;i<min1;i++)
{
if(a[i]=='1'&&b[i]=='1')
{ s=s+char('0'+cf);
cf=1;
}
else if((a[i]=='1'||b[i]=='1')&&cf==1)
{
s=s+'0';
cf=1;
}
else
{
s+=char(a[i]+(b[i]-'0')+cf);
cf=0;
}
}
while(len1>len2)
{
if(a[len2]=='1'&&cf==1)
{s+='0';
cf=1;}
else {
s+=char(a[len2]+cf);
cf=0;}
len2++;
}
while(len1<len2)
{
if(b[len1]=='1'&&cf==1)
{s+='0';
cf=1;}
else {
s+=char(b[len1]+(cf));
cf=0;}
len1++;
}
if(len1==len2&&cf==1)
s+='1';
reverse(s.begin(),s.end());
return s;
}
};
public:
string addBinary(string a, string b) {
int len1=a.size();
int len2=b.size();
int min1=min(len1,len2);
int cf=0;
string s;
reverse(a.begin(),a.end()); // 先逆置
reverse(b.begin(),b.end()); //
for(int i=0;i<min1;i++)
{
if(a[i]=='1'&&b[i]=='1')
{ s=s+char('0'+cf);
cf=1;
}
else if((a[i]=='1'||b[i]=='1')&&cf==1)
{
s=s+'0';
cf=1;
}
else
{
s+=char(a[i]+(b[i]-'0')+cf);
cf=0;
}
}
while(len1>len2)
{
if(a[len2]=='1'&&cf==1)
{s+='0';
cf=1;}
else {
s+=char(a[len2]+cf);
cf=0;}
len2++;
}
while(len1<len2)
{
if(b[len1]=='1'&&cf==1)
{s+='0';
cf=1;}
else {
s+=char(b[len1]+(cf));
cf=0;}
len1++;
}
if(len1==len2&&cf==1)
s+='1';
reverse(s.begin(),s.end());
return s;
}
};
相关文章推荐
- 日经社説 20150722 企業統治の不全が招いた東芝の利益操作
- C# Dictionary用法总结
- 【原创】互斥锁使用分析 分类: Linux --- 应用程序设计 2015-07-22 11:57 6人阅读 评论(0) 收藏
- gcc编译选项 -- linux
- shell脚本
- cocos2d-x3.0 触控机制和动作解析
- jquery语法
- mysql 常用sql语句
- I2C的随笔
- 基于CentOS的Mysql学习补充二--使用Shell创建数据库
- 【Win10 应用开发】自适应Toast通知的XML文档结构
- 使用sqlserver convert()函数
- 日经社説 20150722 防衛白書は等身大の分析で
- 小星星吉他谱单音版
- 认识HTML5的WebSocket通讯
- js 时间处理方案
- NSTableView NSImage
- 在主机商的共享服务器上部署Django站点的方法
- codeforces 397B On Corruption and Numbers-yy-(求区间内的整数能否凑成某一整数)
- 抽象工厂模式的理解