切換
舊版
前往
大廳
主題

LeetCode - 67. Add Binary 解題心得

Not In My Back Yard | 2020-08-07 00:00:21 | 巴幣 0 | 人氣 245

題目連結:


題目意譯:
給定兩個二進位字串 a 、 b,回傳兩者的總和(同樣也是一個二進位字串)

輸入的字串皆為非空且只包含字元「0」以及「1」。

限制:
每個字串組由「0」或「1」組成。
1 ≦ a.length 、 b.length ≦ 10 ^ 4
每個字串不是為 "0" 就是不含任何前導 0 。



範例測資:
範例 1:
輸入: a = "11", b = "1"
輸出: "100"

範例 2:
輸入: a = "1010", b = "1011"
輸出: "10101"


解題思維:
先將兩個字串 a 、 b 藉由補前導 0 將兩者的長度補到一樣。接著用一變數 carry (一開始為 0)代表有無進位。接著就一位一位地將兩個字串相對應的位置所代表的位元(0 或 1)相加並且加上 carry 之值。更新該位置的位元值然後更新 carry 值然後進到下一位。

如果做完之後,carry = 1 ,則代表還要在結果前面加一個「1」。最後得出的字串即是所求。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

相關創作

更多創作