登录
  • #刷题
  • #leetcode

43. Multiply Strings P1的进位问题

fish1994
374
2
这道题有个疑惑点,先贴看到的答案吧

public String multiply(String num1, String num2) {

if(num1 == null || nums2 == null) return '0';

int[] digits = new int[num1.length + num2.length];

for(int i = num1.length - 1; i >= 0; i--) {

for(int j = num2.length - 1; j >=0; j--) {

int product = (num1.charAt(i) - '0') * (num2.charAt(j) - '0');

int p1 = i + j;

int p2 = i + j + 1;

int sum = digits[p2] + product;

digits[p1] += sum/10;

digits[p2] = sum%10;

}

}

StringBuilder sb = new StringBuilder();

for(int i = 0; i < digits.length; i++) {

if(!(digits == 0 && sb.length == 0)) {

sb.append(digits);

}

}

return sb.length == 0 ? '0' : sb.toString();

}

有个情况就是如果digits[p1] 之前刚好等于9, 然后万一sum/10等于个1, 9 + 1不就等于10了嘛, 这样digits[p1]就等于10了,这难道不需要进个位嘛?
2条回复
热度排序

发表回复