来自题解第一篇
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 计算两个数之和 * @param s string字符串 表示第一个整数 * @param t string字符串 表示第二个整数 * @return string字符串 */ public String solve (String s, String t) { // write code here StringBuilder sb = new StringBuilder(); //从字符串最后一位开始 int i = s.length() - 1; int j = t.length() - 1; int carry = 0; //表示进位 while (i >= 0 || j >= 0 || carry != 0) { //当都不满足时退出,即两个字符串都扫描完,且没有进位 int x = i < 0 ? 0 : s.charAt(i--) - '0'; int y = j < 0 ? 0 : t.charAt(j--) - '0'; int sum = x + y + carry; sb.append(sum % 10); //只添加个位 carry = sum / 10; //对 10 求整得进位 } return sb.reverse().toString(); } }