题目:

示例:

分析:
题面很简单,就是要将两个字符串看作是数字然后相加,将最后结果转为字符串返回即可.
看到这题我的第一反应是直接转成数字再相加再转成字符串,像是这样:
class Solution {
public:
    string addStrings(string num1, string num2) {
        return to_string(stoi(num1)+stoi(num2));
    }
}; 
但这样就不符合题目要求了(这不是主要原因) ,并且遇到大数就无法转成整型也无法计算了.
所以需要像是我们列竖式计算这样来算出结果.
首先将两个字符串翻转过来,这样就尾部对齐了(个位对个位,十位对十位).
然后再单独把每位的字符转成数字再相加,然后转成新的字符串即可.需要注意的是进位,进位要单独取一个变量来存着.
相加完毕后还需要再翻转回来.

代码+运行结果:
class Solution {
public:
    string addStrings(string num1, string num2) {
        reverse(num1.begin(),num1.end());
        reverse(num2.begin(),num2.end());
        string res="";
        int jinwei=0;
        int index=0;
        while(index<num1.size() || index<num2.size() || jinwei!=0){
            int cur=0;
            cur+=((index<num1.size()?int(num1[index]-'0'):0))+((index<num2.size()?int(num2[index]-'0'):0))+jinwei;
            res+=to_string(cur%10);
            jinwei=cur/10;
            index++;
        }
        reverse(res.begin(),res.end());
        return res;
    }
}; 




















