LeetCode 415. 字串相加
阿新 • • 發佈:2020-12-01
地址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; } };