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;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章