leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

0043.cpp (844B)


0 class Solution { 1 public: 2 string multiply(string num1, string num2) { 3 if (num1 == "0" || num2 == "0") return "0"; 4 5 reverse(num1.begin(), num1.end()); 6 reverse(num2.begin(), num2.end()); 7 string answer(num1.size() + num2.size(), '0'); 8 9 for (int p2 = 0; p2 < num2.size(); p2++) { 10 int d2 = num2[p2] - '0'; 11 for (int p1 = 0; p1 < num1.size(); p1++) { 12 int d1 = num1[p1] - '0'; 13 14 int numZero = p1 + p2; 15 int carry = answer[numZero] - '0'; 16 int mul = d1 * d2 + carry; 17 answer[numZero] = mul % 10 + '0'; 18 answer[numZero + 1] += mul / 10; 19 } 20 } 21 if (answer.back() == '0') answer.pop_back(); 22 23 reverse(answer.begin(), answer.end()); 24 return answer; 25 } 26 };