给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。
你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。
1 2 3 4 5 6 7 8 9 10 11 12
| 示例 1:
输入:num1 = "11", num2 = "123" 输出:"134" 示例 2:
输入:num1 = "456", num2 = "77" 输出:"533" 示例 3:
输入:num1 = "0", num2 = "0" 输出:"0"
|
提示:
1 2 3
| 1 <= num1.length, num2.length <= 104 num1 和num2 都只包含数字 0-9 num1 和num2 都不包含任何前导零
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| class Solution { public String addStrings(String num1, String num2) { int len1 = num1.length(); int len2 = num2.length(); int len; if (len1 > len2) { len = len1; for (int i = 0; i < len1 - len2; i++) { num2 = "0" + num2; } } else { len = len2; for (int i = 0; i < len2 - len1; i++) { num1 = "0" + num1; } } StringBuilder result = new StringBuilder(); int addNum = 0; for (int i = len - 1; i >= 0; i--) { int tmp = (num1.charAt(i) - '0') + (num2.charAt(i) - '0') + addNum; result.insert(0, tmp % 10); addNum = tmp / 10;
} if (addNum != 0) { result.insert(0, addNum); } return result.toString(); } }
|