傻瓜式解题
思路:利用栈的特点进行加法计算
实现步骤:
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; }