Facebook 面試題 | 字串相加

九章演算法發表於2019-02-19

專欄 | 九章演算法
網址 | www.jiuzhang.com

題目描述

給定兩個字串,代表兩個數字,num1, num2.計算他們的和。返回型別也是一個字串。

給定的兩個字串長度小於5000,只包含數字0-9,同時不包含任何的前導0,不允許使用任何的大整數計算庫。

樣例輸入

num1 = “5”, num2= “613”, 返回“618”

演算法分析

本題是簡單的字串處理+模擬問題。
由於加法的過程是從個位開始向最高位逐位相加,
而數字的個位在字串的最大位置處(len – 1),數字的最高位在字串的0位置處,
所以應該按照兩個字串的最大位置對齊,
假設兩個字串的長度分別為len1和len2,
那麼我們應該從len1-1和len2-1開始逆序逐位相加,
每一位的加法應該考慮三個方面:
兩個字串在該位的數值以及上一位的進位。
需要注意的是兩個字串長度很可能並不相等,因此我們在處理完能夠對齊的部分之後還需要考慮較長的字串剩下的部分。
另外還有一個細節需要注意,最後一次加法運算很可能也存在進位1,這時需要單獨把進位1新增到最後的結果中。

參考程式碼

更多優質LC答案查詢網址:www.jiuzhang.com/solutions/

面試官角度分析

本題思想比較簡單,是字串模擬加法問題,如果面試者順利給出正確的解法能夠達到hire的程度。

推薦閱讀:



歡迎關注我的微信公眾號:九章演算法(ninechapter)。
精英程式設計師交流社群,定期釋出面試題、面試技巧、求職資訊等

九章演算法,IT教育領域的深耕者
九章演算法,IT教育領域的深耕者

相關文章