题目

类型:Math
难度:中等
image.png

解题思路

image.png

代码

  1. class Solution {
  2. public String multiply(String num1, String num2) {
  3. if (num1.equals("0") || num2.equals("0")) {
  4. return "0";
  5. }
  6. int m = num1.length(), n = num2.length();
  7. int[] ansArr = new int[m + n];
  8. for (int i = m - 1; i >= 0; i--) {
  9. int x = num1.charAt(i) - '0';
  10. for (int j = n - 1; j >= 0; j--) {
  11. int y = num2.charAt(j) - '0';
  12. ansArr[i + j + 1] += x * y;
  13. }
  14. }
  15. for (int i = m + n - 1; i > 0; i--) {
  16. ansArr[i - 1] += ansArr[i] / 10;
  17. ansArr[i] %= 10;
  18. }
  19. int index = ansArr[0] == 0 ? 1 : 0;
  20. StringBuffer ans = new StringBuffer();
  21. while (index < m + n) {
  22. ans.append(ansArr[index]);
  23. index++;
  24. }
  25. return ans.toString();
  26. }
  27. }