您的位置:首页 > 其它

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 =
"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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: