
求解代码
java
public String solve(String s, String t) {
// 如果第一个字符串为空/长度为0,直接返回第二个字符串
if(s.length()<=0){
return t;
}
// 如果第二个字符串为空/长度为0,直接返回第一个字符串
if(t.length()<=0){
return s;
}
int i = s.length()-1;
int j = t.length()-1;
// 定义进位变量tmp
int tmp = 0;
// 定义StringBuilder拼接结果
StringBuilder sb = new StringBuilder();
// 需要注意:最后一位相加仍有进位时,需把进位1也拼接到结果
while (i>=0||j>=0||tmp!=0) {
tmp += i>=0?s.charAt(i--)-'0':0;
tmp += j>=0?t.charAt(j--)-'0':0;
// 取余10:得到当前位的计算结果
sb.append(tmp%10);
// 除以10:更新进位值
tmp=tmp/10;
}
// 结果逆序:因为是从个位开始拼接,需要反转回正序,再转字符串返回
return sb.reverse().toString();
}