This question is pretty straight forward.

 1 class Solution {
 2 public:
 3     string addBinary(string a, string b) {
 4         int runnerA = a.size()-1, runnerB = b.size()-1, carry = 0;
 5         if (runnerA < 0) return b;
 6         if (runnerB < 0) return a;
 7         string result;
 8         while (runnerA >= 0 || runnerB >= 0) {
 9             int sum = carry;
10             if (runnerA >= 0) sum += int(a[runnerA--] - '0');
11             if (runnerB >= 0) sum += int(b[runnerB--] - '0');
12             carry = sum/2;
13             result = char(sum%2 + '0') + result;
14         }
15         if (carry) result = '1' + result;
16         return result;
17     }
18 };

 

posted on 2015-03-18 07:03  keepshuatishuati  阅读(126)  评论(0编辑  收藏  举报