LeetCode 67.Add Binary (二進位制求和)
阿新 • • 發佈:2018-12-12
題目描述:
給定兩個二進位制字串,返回他們的和(用二進位制表示)。
輸入為非空字串且只包含數字 1
和 0
。
示例 1:
輸入: a = "11", b = "1" 輸出: "100"
示例 2:
輸入: a = "1010", b = "1011" 輸出: "10101"
AC C++ Solution:
class Solution { public: string addBinary(string a, string b) { string s = ""; int c = 0, i = a.size() - 1, j = b.size() - 1; // c用來記錄對應位相加的數字以及進位 while(i >= 0 || j >= 0 || c == 1) { c += i >= 0 ? a[i --] - '0' : 0; //加上a[i]或0 c += j >= 0 ? b[j --] - '0' : 0; //加上b[j]或0 s = char(c % 2 + '0') + s; //s一定在後加 c /= 2; //c若為2,則在下一次迴圈中c初始值為1. } return s; } };