[leetcode]Add Binary

来源:互联网 发布:杨辉三角java代码 编辑:程序博客网 时间:2024/05/01 06:08
class Solution {public:    char add(char a, char b, char c, char &carry){        int result = a - '0' + b -'0' + c-'0';        if(result == 0){            carry = '0';            return '0';        }else if(result == 1){            carry = '0';            return '1';        }else if(result == 2){            carry = '1';            return '0';        }else{            carry = '1';            return '1';        }            }    string addBinary(string a, string b) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        if(a.empty() || b.empty()) return "";                if(b.size() > a.size()) swap(a,b);                int p = a.size()-1;        int q = b.size()-1;                string c = a;        char carry = '0';        char nc;                while(q >= 0){            c[p] = add(a[p], b[q], carry, nc);            carry = nc;            p--;            q--;          }                while(p >= 0){            c[p] = add(a[p], '0', carry, nc);            carry = nc;            p--;        }                if(carry == '1'){            c.insert(c.begin(), '1');        }        return c;                }};

原创粉丝点击