题意:
        以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。
        

方法:
直接模拟


思路:
           两数相加顺序是从最低位到最高位,因此需逆向遍历字符串。
            首先,初始化 下标 i 指向字符串 s 的末尾,下标 j 指向字符串 t 的末尾和进位标志 flag = 0
            逆向循环相加操作如下:
int temp=s[i--]-'0'+t[j--]-'0'+flag;//求和

            因为两字符串长度可能不相等,所以还需遍历长的字符串。
           之后还需判断进位;
            最后反转结果字符串即可。

    


class Solution {
public:
    
    string solve(string s, string t) {
        string res="";
        int i=s.size()-1,j=t.size()-1;
        int flag=0;//进位
        while(i>=0&&j>=0){//逆序遍历
            int temp=s[i--]-'0'+t[j--]-'0'+flag;//求和
            if(temp>9){//进位
                flag=1;
                temp%=10;
            }else{
                flag=0;
            }
            res+=temp+'0';//追加结果
        }
        while(i>=0){//字符串s的长度长些
            int temp=s[i--]-'0'+flag;
            if(temp>9){
                flag=1;
                temp%=10;
            }else{
                flag=0;
            }
            res+=(temp)+'0';
        }
        while(j>=0){//字符串t的长度长些
            int temp=t[j--]-'0'+flag;
            if(temp>9){
                flag=1;
                temp%=10;
            }else{
                flag=0;
            }
            res+=(temp)+'0';
        }
        if(flag){//最后判断进位
            res+='1';
        }
        reverse(res.begin(),res.end());//反转字符串
        return res;
    }
};


时间复杂度:
空间复杂度: