切換
舊版
前往
大廳
主題

LeetCode - 415. Add Strings 解題心得

Not In My Back Yard | 2020-10-20 17:36:55 | 巴幣 2 | 人氣 240

題目連結:


題目意譯:
給定兩個非負整數 num1 、 num2 並以字串表示,回傳 num1 與 num2 的和(也是字串)。

注:
num1 與 num2 兩者的長度皆 < 5100。
num1 與 num2 兩者皆只包含數字 0 ~ 9。
num1 與 num2 兩者皆不含任何前導 0 (除非值就是 0 本身)。
你不能使用任何內建的大數運算,或是將字串直接轉成數字儲存。



範例測資:
(本題無給定範例)


解題思維:
將兩個字串反轉,以便對其兩個數字的尾數(個位數),然後看哪個字串較短就補到跟另一個一樣長(也是對齊位數用)。

從個位數開始,並以一變數 carry(初始為 0)代表有無進位,將兩個字串的對應位數之值相加並加上 carry 之值,存在另一字串中。而 carry 的值也要更新,如果該位數加總 ≧ 10 ,則 carry = 1 ;反之,carry = 0。

每個位數都掃完之後,看 carry 是否不為 0 。如果不為 0 ,代表著兩者相加之後的新數字之位數長比原先多 1 。因此將加總後的結果再加上 carry 作為最高位。最後的結果即為所求。




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

創作回應

相關創作

更多創作