Given two non-negative integers num1 and num2 represented as strings, return the product of num1 and num2.
Note:
The length of both num1 and num2 is < 110. Both num1 and num2 contains only digits 0-9. Both num1 and num2 does not contain any leading zero. You must not use any built-in BigInteger library or convert the inputs to integer directly.
Solution
publicclassSolution {publicStringmultiply(String num1,String num2) {int size1 =num1.length();int size2 =num2.length();int[] result =newint[size1 * size2 +1];for (int i =0; i < size1; i++) {for (int j =0; j < size2; j++) {int a =Integer.valueOf(String.valueOf(num1.charAt(size1 - i -1)));int b =Integer.valueOf(String.valueOf((num2.charAt(size2 - j -1)))); result[i + j] += a * b; } }int[] copy =newint[size1 * size2 +1];int adder =0;for (int i =0; i < size1 * size2+1; i++) {int sum = adder + result[i]; copy[i] = sum %10; adder = sum /10; }StringBuffer sb =newStringBuffer();int start;for (start = size1 * size2; start >=0; start--) {if (copy[start] !=0) break; }for (int i = start; i >=0; i--) {sb.append(copy[i]); }if (sb.toString().equals(""))return"0";returnsb.toString(); }}