傻瓜式解题

思路:利用栈的特点进行加法计算

实现步骤:
1.将字符逐个转为数字并存入栈
2.将两个栈内数字逐位加法计算,每位结果存入栈
3.计算结果转成字符串

 string solve(string s, string t) 
    {
        // write code here
      //将字符串转成数字存入栈
         stack<int> stack1,stack2;
        for(auto c:s)
            stack1.push(c-'0');//利用ASCII码值
        for(auto c:t)
            stack2.push(c-'0');

        //进行加法计算  计算结果存入栈
        int carry=0;//进位标志
        stack<int> result;

        while(!stack1.empty() || !stack2.empty() || carry!=0) //注意最大位相加后进位1也得存入数组
        {
            int a=0,b=0;
            if(!stack1.empty())
            {
                a=stack1.top();
                stack1.pop();
            }
            if(!stack2.empty())
            {
                b=stack2.top();
                stack2.pop();
            }
            int sum=a+b+carry;
            result.push(sum%10);
            carry=sum/10;
        }

        //计算结果转为字符串
        string sumStr;
        while(!result.empty())
        {
            sumStr+=to_string(result.top());
            result.pop();
        }
        return sumStr;

    }