iT邦幫忙

2024 iThome 鐵人賽

1
佛心分享-刷題不只是刷題

刷經典 LeetCode 題目系列 第 49

經典LeetCode 67. Add Binary

  • 分享至 

  • xImage
  •  

題目:
給定兩個二進位數字字串 ab,將它們加起來並以二進位形式回傳他們的加總。

範例:

輸入: a = "11", b = "1"
輸出: "100"

解題思路

模擬二進位運算加總,並且還要有進位的方式,

實作:

class Solution {
public:
    string addBinary(string a, string b) {
        int i = a.size()-1;
        int j = b.size()-1;
        int carry = 0;
        string res;

        while (i >= 0 || j >= 0) {
            int sum = carry;
            if (i >= 0) sum += a[i] == '1' ? 1 : 0;
            if (j >= 0) sum += b[j] == '1' ? 1 : 0;
            res += (sum % 2) + '0';
            if (sum >= 2)
                carry = 1;
            else
                carry = 0;
            i--;
            j--;
        }
        if (carry == 1) res += '1';
        reverse(res.begin(), res.end());
        return res;
    }
};

參考:
#67. Add Binary


上一篇
經典LeetCode 232. Implement Queue using Stacks
下一篇
經典LeetCode 283. Move Zeroes
系列文
刷經典 LeetCode 題目69
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言