大树加法C++实现
利用栈的特性来解决(string也可以,但是string 的insert效率不高)
从两个数的尾部一个一个处理,知道两个数字都被处理完成。
坑点:处理完所有数字只有需要判断是否依旧存在进位,有进位则首部加1

class Solution {
public:
    string solve(string s, string t) {
        int tt=t.size()-1,ss=s.size()-1;
        stack<char> sta;
        int step=0;
        string ans;
        while(tt>=0||ss>=0)
        {
            int temp=0;
            if(ss>=0) temp+=s[ss--]-'0';
            if(tt>=0) temp+=t[tt--]-'0';
            temp+=step;
            if(temp>9)          //进位
                step=1;
            else
                step=0;
            temp%=10;
            sta.push(temp+'0');
        }
        if(step==1)    //处理完所有数字要考虑一下是否依旧存在进位   例如99+1
            sta.push(step+'0');
        while(!sta.empty())
        {
            ans+=sta.top();
            sta.pop();
        }
        return ans;
    }
};