Add Binary

来源:互联网 发布:淘宝上的星巴克月饼券 编辑:程序博客网 时间:2024/06/07 03:58
class Solution {public:    string addBinary(string a, string b) {        int length1 = a.size();        int length2 = b.size();        int add = 0;        string out;        int i = 0;        if(length1>length2){            for(i=0;i<length2;i++){                if(a[length1-i-1]=='1'&&b[length2-i-1]=='1'){                    if(add==1){                        out = '1' + out;                    }                    else                        out = '0' + out;                    add = 1;                }                else if(a[length1-i-1]=='1'||b[length2-i-1]=='1'){                    if(add==1){                        add = 1;                        out = '0' + out;                    }                    else{                        add = 0;                        out = '1' + out;                    }                }                else{                    if(add==1){                        out = '1' + out;                    }                    else                        out = '0' + out;                    add = 0;                }            }                        for(int j=i;j<length1;j++){                if(add==1){                    if(a[length1-j-1]=='1'){                        add = 1;                        out = '0' + out;                    }                    else{                        add = 0;                        out = '1' + out;                    }                }                else {                    out = a[length1-j-1] + out;                }            }        }        else{           for(i=0;i<length1;i++){                if(a[length1-i-1]=='1'&&b[length2-i-1]=='1'){                    if(add==1){                        out = '1' + out;                    }                    else                        out = '0' + out;                    add = 1;                }                else if(a[length1-i-1]=='1'||b[length2-i-1]=='1'){                    if(add==1){                        add = 1;                        out = '0' + out;                    }                    else{                        add = 0;                        out = '1' + out;                    }                }                else{                    if(add==1){                        out = '1' + out;                    }                    else                        out = '0' + out;                    add = 0;                }            }                        for(int j=i;j<length2;j++){                if(add==1){                    if(b[length2-j-1]=='1'){                        add = 1;                        out = '0' + out;                    }                    else{                        add = 0;                        out = '1' + out;                    }                }                else {                   out = b[length2-j-1] + out;                }            }         }        if(add==1)            out = '1' + out;        return out;    }};


0 0