Add Binary

来源:互联网 发布:域名代理平台 编辑:程序博客网 时间:2024/06/06 12:49

Given two binary strings, return their sum (also a binary string).

For example,
a = "11"
b = "1"
Return "100".


题目解析

1、需要考虑其中有一个字符串是空的情况

2、是a的长度是最长的,然后将结果保存在a中,这可以通过对比长度,然后进行替换即可

3、要考虑是否进位溢出的情况,如果溢出要在第一个位置插入进位。

4、字符串中插入字符的函数是

a.insert(0,1,inc+'0');
第一个参数为位置,第二个参数为个数,第三个是要插入的字符



#include <iostream>using namespace std;string addBinary(string a, string b) {if(a.size() == 0)return b;if(b.size() == 0)return a;int lenA = a.size();int lenB = b.size();if(lenA < lenB){string temp = a;a = b;b = temp;lenA = a.size();lenB = b.size();}int inc = 0;for(int i=1;i<=lenB;i++){int value = (a[lenA-i]-'0')+(b[lenB-i]-'0') + inc;a[lenA-i] = value%2 + '0';inc = value/2;}for(int j = (lenA-lenB-1);j>=0;j-- ){int value = (a[j]-'0')+inc;a[j] = value%2+'0';inc = value/2;}if(inc > 0)a.insert(0,1,inc+'0');return a;}int main(void){string a("111");string b("1111");string res = addBinary(a,b);cout << res.c_str() << endl;system("pause");return 0;}


0 0
原创粉丝点击