试题:
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 and num2 is < 110.
Both num1 and num2 contain only digits 0-9.
Both num1 and num2 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.
代码:
解析
class Solution {
public String multiply(String num1, String num2) {
int num1len = num1.length();
int num2len = num2.length();
int[] mul = new int[num1len+num2len];
for(int i=num1len-1; i>=0; i--){
for(int j=num2len-1; j>=0; j--){
int p1 = i+j, p2 = i+j+1;
int tmp = (num1.charAt(i)-'0')*(num2.charAt(j)-'0');
tmp += mul[p2];
mul[p1] += tmp/10;
mul[p2] = tmp%10;
}
}
StringBuilder out = new StringBuilder();
for(int num : mul){
if(!(out.length()==0&&num==0)){
out.append(num);
}
}
return out.length()==0?"0":out.toString();
}
}