题解 | #大数加法#TOP86

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){
            return t;
        }
        if(t == null){
            return s;
        }
        //相加的时候注意内存泄漏
        Stack<Integer> stack = new Stack<>();
        StringBuilder sb = new StringBuilder();
        int i = s.length() - 1, j = t.length() - 1, carray = 0;
        
        while(i >= 0 || j >= 0 || carray != 0){
            carray += (i >=0 ? s.charAt(i--) - '0' : 0 );
            carray += (j >=0 ? t.charAt(j--) - '0' : 0);
            //求余数
            stack.push(carray % 10);
            //求商进一
            carray = carray / 10;
        }
        while(!stack.isEmpty()){
            sb.append(stack.pop());
        }
        return sb.toString();
    }
}
全部评论

相关推荐

11-24 11:23
门头沟学院 C++
点赞 评论 收藏
分享
11-15 18:39
已编辑
西安交通大学 Java
全村最靓的仔仔:卧槽,佬啥bg呢,本也是西交么
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务