import java.util.*; import java.math.BigInteger; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 计算两个数之和 * @param s string字符串 表示第一个整数 * @param t string字符串 表示第二个整数 * @return string字符串 */ public String solve (String s, String t) { // write code here String shortS = s; String longS = t; if(s.length()>= t.length()){ shortS = t; longS = s; } boolean needAddOne = false; StringBuilder sb = new StringBuilder(); //按长的来是为了处理进位 for(int i = 0; i < longS.length();i++){ int n = 0; if(i < shortS.length()){ n = shortS.charAt(shortS.length() - 1 - i) - '0'; } int n2 = longS.charAt(longS.length() - 1 - i) - '0'; int sum = n + n2; if(needAddOne){ sum += 1; } if(sum >= 10){ //下次需要加1 needAddOne = true; int ge = sum % 10; sb.insert(0, ge + ""); } else { needAddOne = false; sb.insert(0, sum + ""); } } //最后处理有进位的情况 如 9999 + 1 这种情况 变成 10000 if(needAddOne){ sb.insert(0,"1"); } return sb.toString(); } }