题解 | #大数加法#
大数加法
http://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475
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 == null || t == null) {
return "0";
}
if (s.equals("")) {
return t;
}
if (t.equals("")) {
return s;
}
return process(s, t);
}
public String process(String s, String t) {
char[] add1 = s.toCharArray();
char[] add2 = t.toCharArray();
char[] res = new char[Math.max(add1.length, add2.length) + 1];
int len = res.length;
Arrays.fill(res, '0');
int index1 = add1.length - 1;
int index2 = add2.length - 1;
int c = 0;
int index = res.length - 1;
while (index1 >= 0 || index2 >= 0) {
if (index1 >= 0) {
c += add1[index1] - '0';
index1--;
}
if (index2 >= 0) {
c += add2[index2] - '0';
index2--;
}
res[index--] = (char) ((c % 10) + '0');
c /= 10;
}
if (c != 0) {
res[index--] = (char) (c + '0');
}
return new String(res, index + 1, len - index - 1);
}
}