题解 | #大数加法#

大数加法

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.equals("")) {
            return t;
        }

        if (t.equals("")) {
            return s;
        }

        char[] charS = s.toCharArray();
        char[] charT = t.toCharArray();

        int sLen = s.length();
        int tLen = t.length();

        int len = Math.min(sLen, tLen);

        StringBuilder sb = new StringBuilder();
        boolean flag = false; //是否进位
        for (int i = 1; i <= len; i++) {
            int tempS = charS[sLen - i] - '0';
            int tempT = charT[tLen - i] - '0';

            int temp;
            if (flag) {
                temp = tempS + tempT + 1;
            } else {
                temp = tempS + tempT;
            }

            if (temp >= 10) {
                flag = true;
            } else {
                flag = false;
            }
            sb.append(temp % 10);
        }


        if (sLen > len) {
            for (int i = sLen - len - 1; i >= 0; i--) {
                int temp;
                if (flag) {
                    temp = (charS[i] - '0') + 1;
                } else {
                    temp = (charS[i] - '0');
                }
                if (temp >= 10) {
                    flag = true;
                } else {
                    flag = false;
                }
                sb.append(temp % 10);
            }
        }

        if (tLen > len) {
            for (int i = tLen - len - 1; i >= 0; i--) {
                int temp;
                if (flag) {
                    temp = (charT[i] - '0') + 1;
                } else {
                    temp = (charT[i] - '0');
                }
                if (temp >= 10) {
                    flag = true;
                } else {
                    flag = false;
                }
                sb.append(temp % 10);
            }
        }
        if (flag) {
            sb.append("1");
        }
        return sb.reverse().toString();
    }
}

#在找工作求抱抱#
全部评论

相关推荐

11-18 15:57
门头沟学院 Java
最终归宿是测开:这个重邮的大佬在重邮很有名的,他就喜欢打92的脸,越有人质疑他,他越觉得爽😂
点赞 评论 收藏
分享
牛客717484937号:双飞硕没实习挺要命的
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务