Leecode刷题
- 题目描述
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
- 示例
输入: num1 = “2”, num2 = “3”
输出: “6”
输入: num1 = “123”, num2 = “456”
输出: “56088”
- 代码
class Solution {
public:
string multiply(string num1, string num2) {
int m=num1.size(),n=num2.size();
vector<int> vals(m+n);
for(int i=m-1;i>=0;i--){
for(int j=n-1;j>=0;j--){
int mul=(num1[i]-'0')*(num2[j]-'0');
int p1=i+j,p2=i+j+1,sum=mul+vals[p2];
vals[p1]+=sum/10;
vals[p2]=sum%10;
}
}
string res="";
for(auto val:vals){
if(!res.empty() || val!=0) res.push_back(val+'0');
}
return res.empty()?"0":res;
}
};