題目連結:
題目意譯:
給定兩個二進位字串 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」。最後得出的字串即是所求。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。