Given two non-negative integers num1
and num2
represented as strings, return the product of num1
and num2
, also represented as a string.
Example 1:
Input: num1 = "2", num2 = "3" Output: "6"
Example 2:
Input: num1 = "123", num2 = "456" Output: "56088"
Note:
- The length of both
num1
andnum2
is < 110. - Both
num1
andnum2
contain only digits0-9
. - Both
num1
andnum2
do not contain any leading zero, except the number 0 itself. - You must not use any built-in BigInteger library or convert the inputs to integer directly.
1 class Solution { 2 public String multiply(String num1, String num2) { 3 int m = num1.length(), n = num2.length(); 4 int[] pos = new int[m + n]; 5 6 for(int i = m - 1; i >= 0; i--) { 7 for(int j = n - 1; j >= 0; j--) { 8 int mul = (num1.charAt(i) - '0') * (num2.charAt(j) - '0'); 9 int p1 = i + j, p2 = i + j + 1; 10 int sum = mul + pos[p2]; 11 12 pos[p1] += sum / 10; 13 pos[p2] = (sum) % 10; 14 } 15 } 16 17 StringBuilder sb = new StringBuilder(); 18 for(int p : pos) 19 if(!(sb.length() == 0 && p == 0)) 20 sb.append(p); 21 return sb.length() == 0 ? "0" : sb.toString(); 22 23 } 24 }