题解 | #大数加法#
大数加法
https://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) {
if(s.length() < t.length()){
//s始终是大数
//t始终是小数
String temp = t;
t = s;
s = temp;
}
//将数据转化为字符串数组
char[] sArray = s.toCharArray();
char[] tArray = t.toCharArray();
//使用栈 将数据保存起来
Stack s_s = new Stack<Integer>();
Stack t_s = new Stack<Integer>();
for(char num : sArray){
s_s.add(num-'0');
}
for(char num : tArray){
t_s.add(num -'0');
}
//再将数据遍历进行数据计算
int jinwei = 0;
StringBuffer sbf = new StringBuffer();
while(!t_s.isEmpty()){
int sum = (int)s_s.pop() + (int)t_s.pop() + jinwei;
int lastNum = sum%10;
jinwei = sum/10;
sbf.append(lastNum);
}
while(!s_s.isEmpty()){
int sum = (int)s_s.pop() + jinwei;
int lastNum = sum%10;
jinwei = sum/10;
sbf.append(lastNum);
}
if(jinwei == 1){
sbf.append(jinwei);
}
return sbf.reverse().toString();
}
}

