【LeetCode】415 字符串相加

415. 字符串相加

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。

你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。

示例 1:

输入:num1 = "11", num2 = "123"
输出:"134"

示例 2:

输入:num1 = "456", num2 = "77"
输出:"533"

示例 3:

输入:num1 = "0", num2 = "0"
输出:"0"

代码:

class Solution {
    public String addStrings(String num1, String num2) {
        String res = "";
        int len1 = num1.length();
        int len2 = num2.length();
        int flag = 0;

        if (len1 >= len2) {
            int n = len1 - len2;
            while (n > 0) {
                res += "0";
                n--;
            }
            num2 = res + num2;
        } else {
            int n = len2 - len1;
            while (n > 0) {
                res += "0";
                n--;
            }
            num1 = res + num1;
        }
        System.out.println(num1 + " " + num2);
        res = "";
        for (int i = num1.length() - 1; i >= 0; i--) {
//            System.out.println(num1.charAt(i));

            int x = num1.charAt(i) - '0';
            int y = num2.charAt(i) - '0';
            int t = x + y + flag;
            flag = 0;

            if (t >= 10) {
                res = String.valueOf(t % 10) + res;
                flag = 1;
            } else {
                res = String.valueOf(t) + res;
            }
        }
        if (flag == 1) {
            res = "1" + res;
        }
        return res;
    }
}

你可能感兴趣的:(面试/笔试题,剑指offer,题解,java)