專欄 | 九章演算法
網址 | 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的程度。
推薦閱讀:
- 《北美IT企業fulltime薪資大曝光》
- 《IT 簡歷模板大放送 | 《如何寫好技術簡歷》講座精華總結》
- 《offer收割機的求職祕訣 | <如何成為offer達人>講座精華總結》
- 《Google offer 如何談判?聽聽 Google recruiter 怎麼說!》
- 《面試遇到做過的題怎麼辦?》
- 《冷凍期大揭祕 | Google、FB、Amazon、Linkedin冷凍期》
- 《面試前如何瞭解一家IT企業?試試官方技術部落格!》
- 《北美IT企業intern薪資大曝光》
- 《16個behavior question 的面試官解析及tips》
- 《Google晉升機制 | 大公司如何升級打怪, 獲得晉升?》
歡迎關注我的微信公眾號:九章演算法(ninechapter)。
精英程式設計師交流社群,定期釋出面試題、面試技巧、求職資訊等