415. 字符串相加(简单)
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
提示:
- num1 和num2 的长度都小于 5100
- num1 和num2 都只包含数字 0-9
- num1 和num2 都不包含任何前导零
- 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/add-strings
思路:
用int会溢出,从后往前,相加,考虑进位,使用string输出
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| class Solution { public String addStrings(String num1, String num2) { StringBuilder res =new StringBuilder(); int len1 = num1.length(); int len2 = num2.length(); int carry = 0; int i = len1-1,j = len2-1; while(i>=0||j>=0){ int n1 = i>=0?num1.charAt(i)-'0':0; int n2 = j>=0?num2.charAt(j)-'0':0; int tmp = n1+n2+carry; carry = tmp/10; tmp %= 10; res.append(tmp); i--; j--; } if(carry==1){ res.append(1); } return res.reverse().toString(); } }
|