LeetCode: Add Binary [065]

来源:互联网 发布:mac文件拷贝软件 编辑:程序博客网 时间:2024/06/05 05:01

【题目】


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 alen=a.length();        int blen=b.length();        if(alen==0)return b;        if(blen==0)return a;                string result="";        int pa=alen-1;  //a字符串游标        int pb=blen-1;  //b字符串游标        char val2next=0; //进位值        while(pa>=0 && pb>=0){            char sum = a[pa] - '0' + b[pb] - '0' + val2next;            val2next = sum/2;            sum=sum%2;            result = (char)(sum + '0') + result;            pa--; pb--;        }        while(pa>=0){            char sum = a[pa] - '0' + val2next;            val2next = sum/2;            sum=sum%2;            result = (char)(sum + '0') + result;            pa--;        }        while(pb>=0){            char sum = b[pb] - '0' + val2next;            val2next = sum/2;            sum=sum%2;            result = (char)(sum + '0') + result;            pb--;        }        if(val2next==1)            result = (char)(val2next + '0') + result;        return result;    }};


0 0
原创粉丝点击