import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 计算两个数之和 * @param s string字符串 表示第一个整数 * @param t string字符串 表示第二个整数 * @return string字符串 */ public String solve (String s, String t) { // write code here // 0.处理特殊情况 if (s.length() == 0) { return t; } if (t.length() == 0) { return s; } // 1.按位加,注意进位 StringBuilder sb = new StringBuilder(); int i = 0; int sl = s.length(); // 字符串s的实际下标,从后往前 int si = sl - 1 - i; int tl = t.length(); // 字符串t的实际下标,从后往前 int ti = tl - 1 - i; // 进位 int add = 0; while (si >= 0 || ti >= 0) { // si和ti有一个大于等于0即继续运算 int sn = 0; if (si >= 0) { sn = s.charAt(si) - '0'; } int tn = 0; if (ti >= 0) { tn = t.charAt(ti) - '0'; } // 运算 int sum = sn + tn + add; int res = sum % 10; add = sum / 10; // 使用StringBuilder的insert方法进行前插 - sb.insert(0, "前插的内容") // 使用String的静态方法valueOf进行字符串化(序列化) - String.valueOf(数字) sb.insert(0, String.valueOf(res)); // 更新si和ti i++; si = sl - 1 - i; ti = tl - 1 - i; } // 此时si和ti全小于0,若进位还有值,则将其加到前面 if (add > 0) { sb.insert(0, String.valueOf(add)); } return sb.toString(); } }