题目很简单,简单的逻辑和字符串处理,但是仍花了不少时间,具体浪费在:
1. 写重了变量,细节问题; 2. C++的substr和字符串和int的转换,真的很细节。比起python,C++的好多功夫都浪费在细节上了呢。
C++代码:
class Solution {
public:
struct Complex{
string first_str;
string second_str;
int first;
int second;
};
string complexNumberMultiply(string a, string b) {
int add_0 = a.find_first_of('+');
int add_1 = b.find_first_of('+');
Complex a_com, b_com;
a_com.first_str = a.substr(0, add_0);
a_com.second_str = a.substr(add_0+1, a.size()-1-add_0);
b_com.first_str = b.substr(0, add_1);
b_com.second_str = b.substr(add_1+1, b.size()-1-add_0);
a_com.first = atoi(a_com.first_str.c_str());
a_com.second = atoi(a_com.second_str.c_str());
b_com.first = atoi(b_com.first_str.c_str());
b_com.second = atoi(b_com.second_str.c_str());
int first_num = a_com.first * b_com.first - a_com.second * b_com.second;
int second_num = a_com.first * b_com.second + a_com.second * b_com.first;
stringstream aa, bb;
aa<<first_num;
bb<<second_num;
string res = aa.str() + '+' + bb.str()+'i';
return res;
}
};