classSolution { public: string multiply(string num1, string num2){ if (num1 == "0" || num2 == "0") return"0"; vector<int> res(num1.size()+num2.size(), 0); for (int i = num1.size()-1; i >= 0; i--) { for (int j = num2.size()-1; j >= 0; j--) { res[i + j + 1] += (num1[i]-'0') * (num2[j]-'0'); res[i + j] += res[i + j + 1] / 10; res[i + j + 1] %= 10; } } int i = 0; string ans = ""; while (res[i] == 0) i++; while (i < res.size()) ans += to_string(res[i++]); return ans; } };
Leetcode 2575. Find the Divisibility Array of a String
1 2 3 4 5 6 7 8 9 10 11 12 13
classSolution { public: vector<int> divisibilityArray(string word, int m){ int n = word.size(); vector<int> res(n, 0); longlong cur = 0; for (int i = 0; i < n; ++i) { cur = (cur * 10 + word[i] - '0') % m; res[i] = cur == 0; } return res; } };