自学内容网 自学内容网

lc字符串相加——模拟

415. 字符串相加 - 力扣(LeetCode)

不准调用封装好的那些库。手动模拟两数相加,记录进位。主要当其中短的数字计算完了怎么办,技巧为下标为负数时就当做0,相当于补0一样。

class Solution {
    public String addStrings(String num1, String num2) {
        StringBuilder sum = new StringBuilder();
        int p1 = num1.length()-1, p2 = num2.length() - 1;
        int n = Math.max(p1, p2) + 1;
        int x1 = 0, x2 = 0, x3 = 0, carry = 0;

        for(int i = 0;i <= n; i++) {
            x1 = (p1 >= 0 ? num1.charAt(p1) - '0':0);
            x2 = (p2 >= 0 ? num2.charAt(p2) - '0':0);
            x3 = x1 + x2 + carry;
            sum.append(x3 % 10);
            carry = x3 / 10;

            p1--;
            p2--;
        } 
        
        //若最后一个为0,删掉
        if(sum.charAt(n) == '0')
            sum.deleteCharAt(n);

        sum.reverse();
        return sum.toString();
    }
}


原文地址:https://blog.csdn.net/qq_61587494/article/details/144386208

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!