链接:
https://leetcode-cn.com/problems/complex-number-multiplication/
描述:
示例:
代码:
class Solution {
public:
int stringtoInt(string s) {
int num = 0;
int flag = 1;
for (int i = 0; i < s.size(); i++) {
//如果有负号,说明是负数
if (s[i] == '-')
flag = -1;
//只利用数字字符,i不使用
else if (s[i] >= '0' && s[i] <= '9')
num = num * 10 + (s[i] - '0');
}
return num* flag;
}
string complexNumberMultiply(string num1, string num2) {
int n1add=0,n2add=0;
//stoi:会跳过最前面的空白字符(包括空格,tab符号等),
//直到遇到第一个非空字符,并在遇到下一个非数字字符时结束转换;
//手写一个stoi--stringtoInt
while(num1[n1add]!='+') ++n1add;
while(num2[n2add]!='+') ++n2add;
int a=stringtoInt(num1.substr(0,n1add));//也可写成stoi(num1);
int b=stringtoInt(num1.substr(n1add+1));//stoi(n1add+1);
int x=stringtoInt(num2.substr(0,n2add));//stoi(num2);
int y=stringtoInt(num2.substr(n2add+1));//stoi(n2add+1);
return to_string(a*x-b*y)+"+"+to_string(b*x+a*y)+'i';
}
};