#408 Add Binary

来源:互联网 发布:反网络爬虫 编辑:程序博客网 时间:2024/06/05 09:21

题目描述:

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

Example

a = 11

b = 1

Return 100

题目思路:

我这里把binary加法和普通的加法准则一样处理,只不过换成了二进制,其实没什么区别。

Mycode(AC = 23ms):

class Solution {public:    /**     * @param a a number     * @param b a number     * @return the result     */    string addBinary(string& a, string& b) {        // Write your code here        string ans = "";        int carry = 0, idx_a = a.length() - 1, idx_b = b.length() - 1;                while (idx_a >= 0 && idx_b >= 0) {            int digit_a = int(a[idx_a--]) - int('0');            int digit_b = int(b[idx_b--]) - int('0');                        ans = to_string((digit_a + digit_b + carry) % 2) + ans;            carry = (digit_a + digit_b + carry) / 2;        }                while (idx_a >= 0) {            int digit_a = int(a[idx_a--]) - int('0');            ans = to_string((digit_a + carry) % 2) + ans;            carry = (digit_a + carry) / 2;        }                while (idx_b >= 0) {            int digit_b = int(b[idx_b--]) - int('0');            ans = to_string((digit_b + carry) % 2) + ans;            carry = (digit_b + carry) / 2;        }                if (carry > 0) {            ans = to_string(carry) + ans;        }                return ans;    }};


0 0
原创粉丝点击