问题:
Given two strings representing two complex numbers.
You need to return a string representing their multiplication. Note i^2 = -1 according to the definition.
Example 1:
Input: "1+1i", "1+1i" Output: "0+2i" Explanation: (1 + i) * (1 + i) = 1 + i^2 + 2 * i = 2i, and you need convert it to the form of 0+2i.
Example 2:
Input: "1+-1i", "1+-1i" Output: "0+-2i" Explanation: (1 - i) * (1 - i) = 1 + i^2 - 2 * i = -2i, and you need convert it to the form of 0+-2i.
Note:
- The input strings will not have extra blank.
- The input strings will be given in the form of a+bi, where the integer a and b will both belong to the range of [-100, 100]. And the output should be also in this form.
解决:
① 计算两个复数相乘的结果,把字符串中的实部和虚部分离开并进行运算。
(a+bi)(c+di) = (ac - bd) + (ad+bc)i
class Solution { //10ms
public String complexNumberMultiply(String a, String b) {
String[] as = a.split("[+]");
String[] bs = b.split("[+]");
int a1 = Integer.parseInt(as[0]);
int ai = Integer.parseInt(as[1].substring(0,as[1].length() - 1));
int b1 = Integer.parseInt(bs[0]);
int bi = Integer.parseInt(bs[1].substring(0,bs[1].length() - 1));
int c1 = a1 * b1 - ai * bi;
int ci = ai * b1 + bi * a1;
return "" + c1 + "+" + ci + "i";
}
}