leetcode[43]Multiply Strings

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) 
{
    if(num1=="0"||num2=="0")return "0";
    int len1=num1.size();
    int len2=num2.size();
    int *n1=new int[len1];
    int *n2=new int[len2];
    for (int i=0;i<len1;i++)
    {
        n1[i]=num1[i]-'0';
    }
    for (int i=0;i<len2;i++)
    {
        n2[i]=num2[i]-'0';
    }
    int *res=new int[len1+len2];
    memset(res,0,(len1+len2)*sizeof(int));
    for (int i=len1-1;i>=0;i--)
    {
        for (int j=len2-1;j>=0;j--)
        {
            res[i+j+1]+=n1[i]*n2[j];
        }
    }
    string result="";
    for (int k=len1+len2-1;k>=0;k--)
    {
        if(k>0) res[k-1]+=res[k]/10;
        res[k]%=10;
        result=char(res[k]+'0')+result;
    }
    if(result[0]=='0')return result.substr(1,result.size());
    return result;
}
};
原文地址:https://www.cnblogs.com/Vae1990Silence/p/4283573.html