class Solution { public String multiply(String num1, String num2) { StringBuilder ans = new StringBuilder(); int[] arr1 = new int[num1.length()]; int[] arr2 = new int[num2.length()]; int[] target = new int[num1.length() + num2.length()]; convertToArray(arr1, num1); convertToArray(arr2, num2); for (int i = 0; i < num1.length(); i++) { for (int j = 0; j < num2.length(); j++) { int k = i + j; target[k] += arr1[i] * arr2[j]; while (target[k] > 9) { target[k + 1] += target[k] / 10; target[k] %= 10; k++; } } } int high = num1.length() + num2.length() - 1; while (target[high] == 0 && high > 0) high--; for (int i = high; i >=0; i--) ans.append((char)(target[i] + '0')); return ans.toString(); } private void convertToArray(int[] arr, String num) { // "123"===> [3, 2, 1] int len = num.length(); for (int i = 0; i < num.length(); i++) arr[i] = num.charAt(len - 1 - i) - '0'; }}