LeetCode_Add Binary
string addBinary(string a, string b) { const char * charA = a.c_str(); const char * charB = b.c_str(); const char * charC; char *sum = new char[201]; int A = a.size(); int B = b.size(); int C; if(A < B){ C = A; A = B; B = C; charC = charA; charA = charB; charB = charC; } int i,j,k; memset(sum, 0, sizeof(char)* 201); for(i = 0; i < A;i++) sum[i+1] = charA[i] ; for(j = B-1 ,i= 0;j>=0; j--,i++) sum[A-i] += charB[j] - '0'; for(i = A; i>0;i--) { switch(sum[i]){ case '0': case '1': continue; case '2': sum[i] = '0'; sum[i-1]+= 1;break; case '3': sum[i] = '1'; sum[i-1]+= 1; break; } } sum[A+1] = 0; if(sum[0] == 1) { sum[0] = '1' ; string result(sum) ; delete []sum ; return result; } else{ string resultB(sum+1); delete [] sum ; return resultB ; } }
--------------------------------------------------------------------天道酬勤!