class Solution {
public:
string solve(string s, string t) {
int l = s.length();
int r = t.length();
if(!l) return t;
if(!r) return s;
int carry = 0, tmp = 0;
if(l < r){ // 将短的字符串补到同一个长度
for(int n = r-l; n > 0; n--){
s = '0' + s;
}
}else if(l > r){
for(int n = l - r; n > 0; n--){
t = '0' + t;
}
}
l = s.size();
for(int i = l-1; i >= 0; i--){ // 从后往前做加法
tmp = s[i] - '0' + t[i] - '0' +carry;
if(tmp >= 10){ // 需要进位
carry = 1;
tmp -= 10;
}else{ // 不需要进位
carry = 0;
}
s[i] = tmp + '0';
}
if(carry) s = '1' + s; // 最后一位相加产生了进位
return s;
}
};