67. Add Binary

来源:互联网 发布:股市数据分析实战技法 编辑:程序博客网 时间:2024/06/05 03:48

Given two binary strings, return their sum (also a binary string).

For example,
a = "11"
b = "1"
Return "100".


很简单的思路,ab都从最后一位开始,初始化c=0为进位,三个数异或得到新的值存入res中,再判断一下c应该是1还是0. 当ab有一个走到尽头后把另一个剩下的部分加进去。

最后reverse整个字符串。

class Solution {public:    string addBinary(string a, string b) {                int m=a.size()-1;        int n=b.size()-1;        int c=0;        string res="";                while(m>=0&&n>=0){            int p=a[m]-'0';            int q=b[n]-'0';            res+=(p^q)^c+'0';            c=p+q+c>1?1:0;            m--;            n--;        }                for(m;m>=0;m--){            int p=a[m]-'0';            res+=p^c+'0';            c=p&c;        }                for(n;n>=0;n--){            int p=b[n]-'0';            res+=p^c+'0';            c=p&c;        }                if(c) res+=c+'0';                reverse(res.begin(),res.end());                return res;    }};


0 0
原创粉丝点击