示例1给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。
你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。
输入:num1 = "11", num2 = "123" 输出:"134"示例2
输入:num1 = "456", num2 = "77" 输出:"533"示例3
输入:num1 = "0", num2 = "0" 输出:"0"提示
- 1 <= num1.length, num2.length <= 104
- num1 和num2 都只包含数字 0-9
- num1 和num2 都不包含任何前导零
public String addStrings(String num1, String num2) { if (num1.charAt(0) == '0') return num2; if (num2.charAt(0) == '0') return num1; StringBuilder sb1 = new StringBuilder(num1); StringBuilder sb2 = new StringBuilder(num2); StringBuilder result = new StringBuilder(); int count = 0; for (int i = sb1.length() - 1, j = sb2.length() - 1; i >= 0 || j >= 0; i --, j --) { int sum = 0; if (i < 0) { sum = sb2.charAt(j) - '0' + count; } else if (j < 0) { sum = sb1.charAt(i) - '0' + count; } else sum = sb1.charAt(i) - '0' + sb2.charAt(j) - '0' + count; if (sum > 9) { sum = sum % 10; count = 1; result.append(sum); } else { count = 0; result.append(sum); } } if (count == 1) result.append(count); return result.reverse().toString(); }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)