程式語言 - LeetCode - C - 43. Multiply Strings



題目:


解答:

class Solution {
public:
    string multiply(string num1, string num2) {
        int m = num1.size();
        int n = num2.size();
        vector<int> q(m + n, 0);

        for (int i = m - 1; i >= 0; --i) {
            for (int j = n - 1; j>= 0; --j) {
                int m = (num1[i] - '0') * (num2[j] - '0');
                int sum = m + q[i + j + 1];

                q[i + j + 1] = sum % 10;
                q[i + j] += (sum / 10);
            }
        }

        string ans;
        for (int n : q) {
            if (ans.size() || n) {
                ans.push_back(n + '0');
            }
        }

        return ans.empty() ? "0" : ans;
    }
};