没有数的位置用0进行代替,用stringBuffer来存放每一次一个位置存的数,如果大于10就需要进位,如果加到是尾部就需要反转,加在头部就不需要反转。可以用stringbuffer的insert方法,插入头部,append方法加在尾部,同时还可以用栈的先进后出的特点,也可完成操作。
import java.util.*;

public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 计算两个数之和
* @param s string字符串 表示第一个整数
* @param t string字符串 表示第二个整数
* @return string字符串
*/
public String solve (String s, String t) {
// write code here
if(s.length()==0||t.length()==0)
return null;
int i=s.length()-1;
int j=t.length()-1;
StringBuffer bf=new StringBuffer();
int temp=0;
while(i>=0||j>=0||temp!=0){
//没有的位置用0代替
int t1=i>=0?s.charAt(i)-'0':0;
int t2=j>=0?t.charAt(j)-'0':0;;
int sum=t1+t2+temp;
bf.append(sum%10);//尾部插入,需进行反转
temp=sum/10;//进位数
i--;
j--;
}
return bf.reverse().toString();
}
}