题目在这里传送门
要解决的首要问题就是用什么存储产生的数据
第二个问题是是处理进位。
思路:
从字符串尾部计算结果,存如StringBuffer,依次拼接。
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 计算两个数之和
* @param s string字符串 表示第一个整数
* @param t string字符串 表示第二个整数
* @return string字符串
*/
public String solve (String s, String t) {
//从字符串尾部计算结果,依次拼接
int s1 = s.length() - 1;
int t1 = t.length() - 1;
int chary = 0; // 进位
int sum = 0;
// 用StringBuffer存储
StringBuffer sb = new StringBuffer();
while(s1 >= 0 || t1 >= 0 || chary > 0){
int ns = s1 < 0 ? 0 : s.charAt(s1) - '0';
int nt = t1 < 0 ? 0 : t.charAt(t1) - '0';
sum = ns + nt + chary;
chary = sum / 10;
sum = sum % 10;
sb.insert(0, sum); //头插法,保证结果是正向的
s1--;
t1--;
}
return sb.toString(); // stringbuffer to string
// write code here
}
}