/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 计算两个数之和
* @param s string字符串 表示第一个整数
* @param t string字符串 表示第二个整数
* @return string字符串
*/
char* solve(char* s, char* t ) {
// write code here
int lens = strlen(s);
int lent = strlen(t);
if(lens < lent) {
char* tmp = s;
s = t;
t = tmp;
int temp = lens;
lens = lent;
lent = temp;
}
char* a = (char*)malloc(sizeof(char) * (lens + 1));
int i = lens - 1, j = lent - 1, k = 0;
int sum = 0, carry = 0;
while(j >= 0) {
sum = s[i] - '0' + t[j] - '0' + carry;
carry = sum / 10;
a[k] = sum % 10 + 48;
k++;
i--;
j--;
}
while(i >= 0) {
sum = s[i] - '0' + carry;
carry = sum / 10;
a[k] = sum % 10 + 48;
k++;
i--;
}
if(carry) {
a[k] = carry + '0';
k++;
}
a[k] = '\0';
int left = 0, right = k - 1;
while(left < right) {
char tmp = a[left];
a[left] = a[right];
a[right] = tmp;
left++;
right--;
}
return a;
}