1. 程式人生 > 實用技巧 >LeetCode 415. 字串相加

LeetCode 415. 字串相加

地址https://leetcode-cn.com/problems/add-strings/

給定兩個字串形式的非負整數num1 和num2,計算它們的和。



提示:

num1 和num2的長度都小於 5100
num1 和num2 都只包含數字0-9
num1 和num2 都不包含任何前導零
你不能使用任何內建 BigInteger 庫,也不能直接將輸入的字串轉換為整數形式

解答

題目思想和連結串列數相加類似
兩個數翻轉後計算 注意進位 最後答案再翻轉即可

class Solution {
public:
    string addStrings(string num1, string num2) {
        
string ans; reverse(num1.begin(), num1.end()); reverse(num2.begin(), num2.end()); int p1 = 0; int p2 = 0; int extraAdd = 0; while (p1 < num1.size() && p2 < num2.size()) { int sum = (num1[p1]-'0') + (num2[p2] -'0') + extraAdd; extraAdd
= sum / 10; sum = sum % 10; ans += to_string(sum); p1++; p2++; } while (p1 < num1.size()) { int sum = (num1[p1] - '0') + extraAdd; extraAdd = sum / 10; sum = sum % 10; ans += to_string(sum); p1
++; } while (p2 < num2.size()) { int sum = (num2[p2] - '0') + extraAdd; extraAdd = sum / 10; sum = sum % 10; ans += to_string(sum); p2++; } if (extraAdd != 0) { ans += to_string(extraAdd); } reverse(ans.begin(),ans.end()); return ans; } };