Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
class Solution { public: string addBinary(string a, string b) { int m = a.length(); int n = b.length(); if(m == 0) return b; if(n == 0) return a; if(n>m) return addBinary(b,a); n--; m--; string res=""; int count = 0; while(n>=0 && m>=0) { int a_int = a[m]-48; int b_int = b[n]-48; int cal = count+a_int+b_int; count = cal/2; cal = cal%2; res += (char)(cal+48); m--; n--; } while(m>=0) { int a_int = a[m]-48; int cal = count+a_int; count = cal/2; cal = cal%2; res += (char)(cal+48); m--; } while(count>0) { res += (char)(count%2 + 48); count = count/2; } n = res.length()-1; int i=0; while(i<n) { char t = res[i]; res[i] = res[n]; res[n] = t; i++; n--; } return res; } };
原文地址:http://blog.csdn.net/shaya118/article/details/42644209