题解 | #大数加法#

大数加法

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);
    }
}
全部评论

相关推荐

斑驳不同:还为啥暴躁 假的不骂你骂谁啊
点赞 评论 收藏
分享
牛客5655:其他公司的面试(事)吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务