Advertisement
spider68

Multiply Strings

May 1st, 2021
963
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.03 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     string multiply(string s1, string s2) {
  4.         int sign = 1;
  5.         if(s1[0] == '-'){
  6.             sign *= -1;
  7.             s1.erase(s1.begin());
  8.         }
  9.         if(s2[0] == '-'){
  10.             sign *= -1;
  11.             s2.erase(s2.begin());
  12.         }
  13.        int vals[s1.length() + s2.length()];
  14.        memset(vals, 0, sizeof(vals));
  15.        for(int i = s1.length() - 1; i >= 0; i--){
  16.            for(int j = s2.length() - 1; j >= 0; j--){
  17.                int mul = (s1[i] - '0') * (s2[j] - '0');
  18.                int sum = vals[i + j + 1] + mul;
  19.                vals[i + j] += sum / 10;
  20.                vals[i + j + 1] = sum % 10;
  21.            }
  22.        }
  23.        string ans = "";
  24.        int i = 0;
  25.        while(i < s1.length() + s2.length() and vals[i] == 0){
  26.            i++;
  27.        }
  28.        for(; i < s1.length() + s2.length(); i++){
  29.            ans += to_string(vals[i]);
  30.        }
  31.        if(sign == -1 and ans != ""){
  32.            ans.insert(0, "-");
  33.        }
  34.        return ans == "" ? "0" : ans;
  35.     }
  36. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement