注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
题目:Given two numbers represented as strings, return multiplication of the numbers as a string.
Note: The numbers can be arbitrarily large and are non-negative.
我的解法:
class Solution {
public:
string multiply(string num1, string num2) {
int m=num1.size();
int n=num2.size();
string zero="0";
int tot=m+n-1;
int res[m+n]={0};
int temp[tot+1]={0};
if(num1==zero||num2==zero)return 0;
for(int i=m-1;i>=0;i--){
for(int j=n-1;j>=0;j--){
temp[i+j+1]+=(num1[i]-'0')*(num2[j]-'0');
}
}
for(int i=m+n-1;i>=1;i--){
res[i]=temp[i]%10;
temp[i-1]+=temp[i]/10;
}
res[0]=temp[0];
string k="";
for(int i=m+n-1;i>=0;i--){
k=to_string(res[i])+k;
}
if(k[0]=='0')return k.substr(1);
return k;
}
};
报错:terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_M_construct null not valid
急哭了 |