[Leetcode]Add Binary
2015-08-11 20:59
295 查看
Given two binary strings, return their sum (also a binary string).
For example,
a =
b =
Return
class Solution {
public:
/*algorithm
add it from the tail, plug carry
time O(max(m,n)) space O(max(m,n) + 1)
*/
string addBinary(string a, string b) {
int m = a.size(),n = b.size();
string s;
int carry = 0,sum;
char c;
while(m > 0 || n > 0){
sum = carry;
if(m > 0)sum += a[--m] - '0';
if(n > 0)sum += b[--n] -'0';
c = sum%2 + '0';
carry = sum/2;
s.insert(0,1,c);
}
if(carry > 0)s.insert(0,1,'1');
return s;
}
};
For example,
a =
"11"
b =
"1"
Return
"100".
class Solution {
public:
/*algorithm
add it from the tail, plug carry
time O(max(m,n)) space O(max(m,n) + 1)
*/
string addBinary(string a, string b) {
int m = a.size(),n = b.size();
string s;
int carry = 0,sum;
char c;
while(m > 0 || n > 0){
sum = carry;
if(m > 0)sum += a[--m] - '0';
if(n > 0)sum += b[--n] -'0';
c = sum%2 + '0';
carry = sum/2;
s.insert(0,1,c);
}
if(carry > 0)s.insert(0,1,'1');
return s;
}
};
相关文章推荐
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法
- 基于C++实现的各种内部排序算法汇总
- C++线性时间的排序算法分析
- C++实现汉诺塔算法经典实例
- PHP实现克鲁斯卡尔算法实例解析
- C#获取关键字附近文字算法实例