add binary

 1  class Solution {
 2  public:
 3      string addBinary(string a, string b) {
 4          // Start typing your C/C++ solution below
 5          // DO NOT write int main() function
 6          if( a == "" ) return b;
 7          if( b == "" ) return a;
 8          
 9          if( a.length() > b.length() )
10          {
11              string s= b;
12              b = a;
13              a = s;
14          }
15          string s1( a.rbegin(),a.rend());
16          string s2( b.rbegin(),b.rend() );
17          
18          int l1 = s1.length();
19          
20          for( int i=1; i<= s2.length() - l1 ; i++ )
21              s1 += '0';
22          
23          int c = 0;
24          string s = "";
25          for( int i=0 ;i<s2.length(); ++i )
26          {
27              int m = s1[i] + s2[i] - '0' - '0';
28              s += (m+c)%2 + '0';
29              
30              c = (m+c)/2;                       
31          }
32          if( c > 0 )
33              s += '1';
34          return string(s.rbegin(),s.rend());
35          
36      }
37  };

 

 

posted on 2013-07-04 13:20  jumping_grass  阅读(110)  评论(0)    收藏  举报

导航