从尾部切割字符串,依次累加进位就好了:
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 计算两个数之和
* @param s string字符串 表示第一个整数
* @param t string字符串 表示第二个整数
* @return string字符串
*/
public String solve (String s, String t) {
char [] count = s.toCharArray();
char [] cover = t.toCharArray();
int countL = count.length-1;
int coverL = cover.length-1;
int carry = 0;
StringBuilder sb = new StringBuilder();
while(countL >= 0 && coverL >= 0){
int sum = (count[countL] - '0') + (cover[coverL] - '0') + carry;
carry = sum/10;
sb.append((char)((sum%10)+'0'));
countL--;
coverL--;
}
if(countL != coverL){
char [] big = countL > coverL?count:cover;
for(int i = Math.max(countL,coverL);i >= 0;i--){
int sum = (big[i] - '0') + carry;
carry = sum/10;
sb.append((char)((sum%10)+'0'));
}
}
sb.append(carry == 0?"":carry);
return sb.reverse().toString();
}
}