43. 字符串相乘

43. 字符串相乘
43. 字符串相乘_第1张图片

class Solution
{
public:
    string multiply(string num1, string num2)
    {
        vector<int> a, b;
        int len1 = num1.size(), len2 = num2.size();
        for (int i = len1 - 1; i >= 0; i--) 
            a.push_back(num1[i] - '0'); 
        for (int i = len2 - 1; i >= 0; i--) 
            b.push_back(num2[i] - '0');

        vector<int> v3(len1 + len2);
        for (int ai = 0; ai < len1; ai++)
        {
            for (int bi = 0; bi < len2; bi++)
                v3[ai + bi] += a[ai] * b[bi];
        }
          
        int t = 0;  //存贮进位
        for (int i = 0; i < v3.size(); i++) 
        {
            t += v3[i];
            v3[i] = t % 10;
            t /= 10;
        }
        int k = v3.size() - 1;
        while (k > 0 && v3[k] == 0)
            k--;
        string s;
        while (k >= 0) 
            s += v3[k--] + '0';  
        return s;
    }
};

你可能感兴趣的:(C家家精品好题,c++)