题目链接:Add Binary

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

For example,

a = "11"
b = "1"
Return "100".

这道题的要求是两个二进制字符串加法运算。

简单的大数加法,只不过是二进制的。处理进位的时候,按照二进制处理即可。

时间复杂度:O(n)

空间复杂度:O(1)

 1 class Solution
 2 {
 3 public:
 4     string addBinary(string a, string b)
 5     {
 6         string s = "";
 7         
 8         int c = 0, i = a.size() - 1, j = b.size() - 1;
 9         while(i >= 0 || j >= 0 || c == 1)
10         {
11             c += i >= 0 ? a[i --] - '0' : 0;
12             c += j >= 0 ? b[j --] - '0' : 0;
13             s = char(c % 2 + '0') + s;
14             c /= 2;
15         }
16         
17         return s;
18     }
19 };