#include <algorithm>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 计算两个数之和
* @param s string字符串 表示第一个整数
* @param t string字符串 表示第二个整数
* @return string字符串
*/
//枚举所有情况,一一处理
string solve(string s, string t) {
// write code here
int n=s.size();
int m=t.size();
if(n==0) return t;
if(m==0) return s;
string mystr;
int carry=0;
while(n && m){
int num1=s[n-1]+t[m-1] - '0'-'0'+carry;
int num=num1%10;
mystr+=num + '0';
carry=num1/10;
n--;
m--;
}
if(n==0 && m==0 &&carry){
int num=carry;
mystr+=carry+'0';
}
if(n==0 && m!=0){
// 9999 1
int k=m-n;
while(k){
int num1=t[k-1] -'0'+carry;
int num=num1%10;
mystr+=num + '0';
carry=num1/10;
k--;
}
if(carry){
int num=carry;
mystr+=carry+'0';
}
}
if(n!=0 && m==0){
int k=n-m;
while(k){
int num1=s[k-1] -'0'+carry;
int num=num1%10;
mystr+=num + '0';
carry=num1/10;
k--;
}
if(carry){
int num=carry;
mystr+=carry+'0';
}
}
reverse(mystr.begin(),mystr.end());
return mystr;
}
};