close

這一題算是蠻特別的, 我覺得他不應該放在簡單的行列內, 原則上我認為應該有中間的程度了.

 

Given two binary strings a and b, return their sum as a binary string.

 

Example 1:

Input: a = "11", b = "1"
Output: "100"

Example 2:

Input: a = "1010", b = "1011"
Output: "10101"

 

Constraints:

  • 1 <= a.length, b.length <= 104
  • a and b consist only of '0' or '1' characters.
  • Each string does not contain leading zeros except for the zero itself.

 

image

image

 


string addBinary(string a, string b) {

    int i = a.size() - 1, j = b.size() - 1;
    int carry = 0;
    string result = "";

    while ( i >= 0 || j >= 0 || carry != 0) {

        if (i >= 0) {
            carry += a[i] == '0' ? 0 : 1;
            i--;
        }
        if (j >= 0) {
            carry += b[j] == '0' ? 0 : 1;
            j--;
        }
        result = ((carry % 2) == 0 ? "0" : "1") + result;
        carry /= 2;
    }
    return result;
}

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Eric 的頭像
    Eric

    一個小小工程師的心情抒發天地

    Eric 發表在 痞客邦 留言(0) 人氣()