leetcode-415. 字符串相加刷題筆記(c++)

寫在前面

  • 難度:簡單
  • 常規遍歷、逐位累加即可

題目詳情

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

注意:

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

ac代碼

  • 知識點
    • string內置函數
      • push_back
      • reverse
class Solution
{
public:
    string addStrings(string num1, string num2)
    {
        string ans;
        int a = num1.size(), b = num2.size();
        if(a==0 || b==0)
            return ans;
        a--,b--;
        int carry = 0;
        while(a>=0 || b>=0|| carry !=0)
        {
            if(a>=0) carry += num1.at(a--)-'0';
            if(b>=0) carry += num2.at(b--)-'0';
            ans.push_back(carry%10+'0');
            carry/=10;
        }
        reverse(ans.begin(), ans.end());
        return ans;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章