leetcode 415. 字符串相加

mac2022-06-30  32

415. 字符串相加

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 注意: num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num1 和num2 都不包含任何前导零。 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。

模拟加法,从字符串最后一位开始相加,用carry记录进位即可。

public String addStrings(String num1, String num2) { StringBuilder sb = new StringBuilder(); int i = num1.length()-1, j = num2.length()-1; int carry = 0; while (i>=0 || j>=0 || carry!=0){ int n1 = i>=0 ? num1.charAt(i)-'0' : 0; int n2 = j>=0 ? num2.charAt(j)-'0' : 0; int sum = n1 + n2 + carry; carry = sum/10; sum = sum%10; sb.append(sum); i--;j--; } return sb.reverse().toString(); }
最新回复(0)