leetcode——43——Multiply Strings

来源:互联网 发布:下载软件 支持thunder 编辑:程序博客网 时间:2024/05/25 23:59

Given two numbers represented as strings, return multiplication of the numbers as a string.

Note:

  • The numbers can be arbitrarily large and are non-negative.
  • Converting the input string to integer is NOT allowed.
  • You should NOT use internal library such as BigInteger.

 class Solution  { public:     string multiply(string num1, string num2)    {         vector<int> vi(num1.size() + num2.size(), 0);         for(int i = 0; i < num1.size(); ++ i)             for(int j = 0; j < num2.size(); ++ j)                 vi[i + j] += (num1[num1.size() - i - 1] - '0') * (num2[num2.size() - j- 1] - '0');          for(int i = 0, c = 0; i < vi.size(); ++ i)         {             int num = vi[i] + c;             vi[i] = num % 10;             c = num / 10;         }          string s = "";         int i = vi.size();         while(-- i >= 0 && vi[i] == 0);         if(i < 0)             s = "0";         else             for( ; i >= 0; -- i)                 s += vi[i] + '0';          return s;     } };

0 0