Leetcode 537. Complex Number Multiplication

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/luke2834/article/details/82746790

题意

  • 就是两个复数以字符串形式输入,计算相加结果

思路

  • 思路很简单,就是用+号切字符串,再算就行了
  • 记下来的原因,主要是记录下string split的函数,以后方便找

实现

class Solution {
public:
    void split(string& s, vector<string>& res, const string& c){
        string::size_type pos1 = 0, pos2 = s.find(c);
        while (pos2 != string::npos){
            res.push_back(s.substr(pos1, pos2 - pos1));
            pos1 = pos2 + c.length();
            pos2 = s.find(c, pos1);
        }
        if (pos1 < s.length())
            res.push_back(s.substr(pos1, pos2 - pos1));
    }
    string complexNumberMultiply(string a, string b) {
        a = a.substr(0, a.length() - 1);
        b = b.substr(0, b.length() - 1);
        vector<string> as, bs;
        split(a, as, "+");
        split(b, bs, "+");
        int x, y;
        x = stoi(as[0]) * stoi(bs[0]) - stoi(as[1]) * stoi(bs[1]);
        y = stoi(as[0]) * stoi(bs[1]) + stoi(as[1]) * stoi(bs[0]);
        return to_string(x) + "+" + to_string(y) + "i";
    }
};

猜你喜欢

转载自blog.csdn.net/luke2834/article/details/82746790