Leet code 67. Add Binary
2016-03-15 17:12
337 查看
Given two binary strings, return their sum (also a binary string).
For example,
a =
b =
Return
本质是二进制的加法。得有个进位标志;
class Solution {
public:
string addBinary(string a, string b) {
//传进来的string有可能为空。
if (a.empty())
{
if(b.empty())return "0";
if(!b.empty())return b;
}
if(!a.empty()&&b.empty())return a;
//为了计算方便,默认string a为length较大
if
(a.length()<b.length())
return
addBinary(b,a);
//较小的string b前面都补0
string
m_b(a.length()-b.length(),'0');
m_b
+= b;
//开始计算
string
m_Result;
int
m_jinwei = 0;
for
(int i = a.length()-1 ;i>=0;i--)
{
char
c = a[i]+m_b[i]+m_jinwei;
switch(c)
{
case
'c':c = '1';m_jinwei = 1;break;
case
'b':c = '0';m_jinwei = 1;break;
case
'a':c = '1';m_jinwei = 0;break;
case
96:c = '0';m_jinwei = 0;break;
}
m_Result.insert(0,1,c);
}
if(m_jinwei)
m_Result.insert(0,1,m_jinwei+48);
return
m_Result;
}
};
For example,
a =
"11"
b =
"1"
Return
"100".
本质是二进制的加法。得有个进位标志;
class Solution {
public:
string addBinary(string a, string b) {
//传进来的string有可能为空。
if (a.empty())
{
if(b.empty())return "0";
if(!b.empty())return b;
}
if(!a.empty()&&b.empty())return a;
//为了计算方便,默认string a为length较大
if
(a.length()<b.length())
return
addBinary(b,a);
//较小的string b前面都补0
string
m_b(a.length()-b.length(),'0');
m_b
+= b;
//开始计算
string
m_Result;
int
m_jinwei = 0;
for
(int i = a.length()-1 ;i>=0;i--)
{
char
c = a[i]+m_b[i]+m_jinwei;
switch(c)
{
case
'c':c = '1';m_jinwei = 1;break;
case
'b':c = '0';m_jinwei = 1;break;
case
'a':c = '1';m_jinwei = 0;break;
case
96:c = '0';m_jinwei = 0;break;
}
m_Result.insert(0,1,c);
}
if(m_jinwei)
m_Result.insert(0,1,m_jinwei+48);
return
m_Result;
}
};
相关文章推荐
- 【Oracle】 Oracle全文检索功能建立
- iOS UIView 一些属性方法总结
- Android中圆角Button实现
- MySql 5.6异常处理: Row size too large (> 8126)
- Poj 3580-SuperMemo Splay
- task3:词频统计
- Hive命令详解
- 我的angularjs源码学习之旅3——脏检测与数据双向绑定
- 220. Contains Duplicate III
- ListView中如何使用Button,让onClick和onItemClick事件共存
- date(): It is not safe to rely on the system's timezone settings.
- Pypy 确实比较快
- JavaScript中栈和队列相关操作和实现
- PowerDesigner打开设计文件后提示failed to read the fileXXX的解决办法
- React组件之间传值
- 2013337朱荟潼 Linux第二章读书笔记——从内核出发
- jquery checkbox操作
- #12V直流电源简单Get
- PorterDuff.Mode说明
- Received empty response from Zabbix Agent at [192.168.1.110]. Assuming that