Leetcode 415. Add Strings 字符串加法 解题报告

来源:互联网 发布:Mac怎样设置快捷键 编辑:程序博客网 时间:2024/06/10 09:26

1 解题思路

就是用两个String表示的数字,不用库的情况下实现加法。

其实说白了就是高精度加法。。注意进位,注意处理长短不一样的数字,都从末尾开始相加就好,不多解释,看代码

2 原题

Given two non-negative numbers num1 and num2 represented as string, return the sum of num1 and num2.Note: The length of both num1 and num2 is < 5100.Both num1 and num2 contains only digits 0-9.Both num1 and num2 does not contain any leading zero.You must not use any built-in BigInteger library or convert the inputs to integer directly.

3 AC解

public class Solution {    public String addStrings(String num1, String num2) {        //交换最大最小的,保证后续        String longer = num1;        String shorter = num2;        if(longer.length() < shorter.length()){            longer = num2;            shorter = num1;        }        int n=longer.length();        int m=shorter.length();        char l[] = longer.toCharArray();        char s[] = shorter.toCharArray();        //余数        int remainder = 0;        char base = '0';        //从末尾开始加        int tmp;        //从末尾开始加        StringBuilder res = new StringBuilder();        while(m --> 0){            n--;            tmp = l[n] + s[m] - 2*base + remainder;            remainder = tmp / 10;            res.append(tmp % 10);        }        //处理长的一边        while(n--> 0){            tmp = l[n] - base + remainder;            remainder = tmp / 10;            res.append(tmp % 10);        }        //处理最后的 进位        if (remainder !=0 ) res.append(remainder);        return res.reverse().toString();    }}
0 0
原创粉丝点击