分析:
当作竖式计算
import java.util.*;
public class Solution {
public String solve (String s, String t) {
StringBuffer ret = new StringBuffer();
//i是字符串s的最后一个字符的索引
int i = s.length() - 1;
//j是字符串t的最后一个字符的索引
int j = t.length() - 1;
//tmp表示进位
int tmp = 0;
//当s、t、tmp都不为0的时候,表示仍有数字待处理
while(i >= 0 || j >= 0 || tmp != 0){
//s中有未处理的字符时,使用charAt定位i索引对应的字符,i--确保从低位处理到高位,-'0'是字符转换为整数的操作。
if(i >= 0) tmp += s.charAt(i--) - '0';
if(j >= 0) tmp += t.charAt(j--) - '0';
//求出个位
ret.append((char)(tmp % 10 + '0'));
//求出进位
tmp /= 10;
}
//反转ret对象,因为是从低位到高位添加的,并转换为字符串类型
return ret.reverse().toString();
}
}