43. Multiply Strings

来源:互联网 发布:ipadmini4下载软件 编辑:程序博客网 时间:2024/05/16 08:24

Given two non-negative integers num1 and num2 represented as strings, return the product of num1 and num2.

Note:

  1. The length of both num1 and num2 is < 110.
  2. Both num1 and num2 contains only digits 0-9.
  3. Both num1 and num2 does not contain any leading zero.
  4. You must not use any built-in BigInteger library or convert the inputs to integer directly.

 1 class Solution 2 { 3 public: 4     string multiply(string num1, string num2) 5     { 6         vector<int> vi(num1.size() + num2.size(), 0); 7         for(int i = 0; i < num1.size(); ++ i) 8             for(int j = 0; j < num2.size(); ++ j) 9                 vi[i + j] += (num1[num1.size() - i - 1] - '0') * (num2[num2.size() - j- 1] - '0');10 11         for(int i = 0, c = 0; i < vi.size(); ++ i)12         {13             int num = vi[i] + c;14             vi[i] = num % 10;15             c = num / 10;16         }17 18         string s = "";19         int i = vi.size();20         while(-- i >= 0 && vi[i] == 0);21         if(i < 0)22             s = "0";23         else24             for( ; i >= 0; -- i)25                 s += vi[i] + '0';26 27         return s;28     }29 };

原创粉丝点击