题目要求
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
num1 和num2 的长度都小于 5100.
num1 和num2 都只包含数字 0-9.
num1 和num2 都不包含任何前导零。
你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
原题链接:415. 字符串相加
解题过程
字符串—>字符—>整数型—>字符串
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| class Solution { public String addStrings(String num1, String num2) { int carry = 0; StringBuilder sb = new StringBuilder(); for(int i = num1.length() - 1, j = num2.length() - 1; i >= 0 || j >= 0; i--, j--){ int a = (i >= 0) ? num1.charAt(i) - '0' : 0; int b = (j >= 0) ? num2.charAt(j) - '0' : 0; int sum = a + b + carry; sb.append(sum%10); carry = sum/10; }
if(carry > 0){ sb.append(1); } return sb.reverse().toString(); } }
|