Multiply Strings
Given two non-negative integersnum1
andnum2
represented as strings, return the product ofnum1
andnum2
题意:求两个字符串数字的相乘,输入的两个数和返回的数都是以字符串格式储存的,这样做的原因可能是这样可以计算超大数相乘,可以不受int或long的数值范围的约束
代码
class Solution {
public String multiply(String num1, String num2) {
if(num1.length()==0 || num2.length()==0) return "0";
int len1 = num1.length();
int len2 = num2.length();
int [] result = new int [len1+len2];
for(int i = len1-1; i>=0; i--){
for(int j = len2-1; j>=0;j--){
int mul = (num1.charAt(i)-'0')*(num2.charAt(j)-'0');
int posLow = i+j+1;
int posHigh = i+j;
mul = mul + result[posLow];
result[posLow] = mul %10;
result[posHigh] = result[posHigh] + mul/10;
}
}
StringBuilder sb = new StringBuilder();
for(int res: result){
if(sb.length()!=0 || res!=0) sb.append(res);
}
return (sb.length()==0)? "0" : sb.toString();
}
}