public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 计算两个数之和
* @param s string字符串 表示第一个整数
* @param t string字符串 表示第二个整数
* @return string字符串
*/
public String solve (String s, String t) {
// write code here
if(s == null || s.length() == 0){
return t;
}
if(t == null || t.length() == 0){
return s;
}
//从尾部开始加,用StringBuilder记录结果
StringBuilder sb = new StringBuilder();
boolean isNeedAddOne = false;
int maxLen = Math.max(s.length(),t.length());
for(int i = 0;i<maxLen;i++){
//从尾部取出对应位置
int sIndex = s.length() - 1 - i;
int tIndex = t.length() - 1 - i;
int ns = 0;
int nt = 0;
if(sIndex >= 0){
ns = (int)(s.charAt(sIndex) - '0');
}
if(tIndex >= 0){
nt = (int)(t.charAt(tIndex) - '0');
}
int count = ns + nt;
if(isNeedAddOne){
count += 1;
isNeedAddOne = false;
}
if(count >= 10){
isNeedAddOne = true;
sb.insert(0,count % 10 + "");
} else {
sb.insert(0,count + "");
}
}
if(isNeedAddOne){
sb.insert(0,"1");
}
return sb.toString();
}
}