以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。
数据范围:s.length,t.length \le 100000s.length,t.length≤100000,字符串仅由'0'~‘9’构成
要求:时间复杂度 O(n)O(n)
示例1
输入:
"1","99"
复制返回值:
"100"
public static String solve(String s, String t) {
Stack<Integer> stack = new Stack<>();
StringBuilder stringBuilder = new StringBuilder();
int i = s.length() - 1;
int j = t.length() - 1;
int add = 0;
while (i >= 0 || j >= 0 || add != 0) {
add += i >= 0 ? s.charAt(i) - '0' : 0;
add += j >= 0 ? t.charAt(j) - '0' : 0;
stack.push(add % 10);
add = add / 10;
i--;
j--;
}
while (!stack.isEmpty()) {
stringBuilder.append(stack.pop());
}
return stringBuilder.toString();
}