Complex Number Multiplication

题目来源
求字符串复数的乘法操作。主要是考虑string的一些操作,我想了想,先找出“+”在哪里,然后分割实部和虚部,然后进行计算,用了stringstream。代码如下:

class Solution {
public:
    string complexNumberMultiply(string a, string b) {
        int n1 = a.size(), n2 = b.size();
        string realA, realB, imageA, imageB;
        for (int i=0; i> irealA;
        istringstream (realB) >> irealB;
        istringstream (imageA) >> iimageA;
        istringstream (imageB) >> iimageB;
        return to_string(irealA * irealB - iimageA * iimageB) + "+" + to_string(irealA * iimageB + irealB * iimageA) + "i";
    }
};

然后发现自己还是太弱了,streamstring不会用。
看了下讨论区,代码如下:

class Solution {
public:
    string complexNumberMultiply(string a, string b) {
        int ra, ia, rb, ib;
        char buff;
        stringstream aa(a), bb(b), ans;
        aa >> ra >> buff >> ia >> buff;
        bb >> rb >> buff >> ib >> buff;
        ans << ra*rb - ia*ib << "+" << ra*ib + rb*ia << "i";
        return ans.str();
    }
};

你可能感兴趣的:(Complex Number Multiplication)