67. 二进制求和

 1 class Solution 
 2 {
 3 public:
 4     string addBinary(string a, string b) 
 5     {
 6         if(a.size() < b.size()) swap(a,b);
 7         int C = 0;//进位
 8         int m = a.size(),n = b.size();
 9         string str;
10         for(int i = m - 1,j = n - 1;i >= 0 || j >= 0;i --,j --)
11         {
12             int sum = (i>=0?a[i]-'0':0) + (j>=0?b[j]-'0':0) + C; 
13             
14             if(sum == 2) C = 1,sum = 0;
15             else if(sum == 3) C = 1,sum = 1;
16             else C = 0;
17 
18             str = to_string(sum) + str;
19         }
20         if(C == 1) str = to_string(C) + str;
21         return str;
22     }
23 };

 

posted @ 2020-03-20 15:35  Jinxiaobo0509  阅读(147)  评论(0)    收藏  举报