537. Complex Number Multiplication
Description
A complex number can be represented as a string on the form "real+imaginaryi" where:
realis the real part and is an integer in the range[-100, 100].imaginaryis the imaginary part and is an integer in the range[-100, 100].i2 == -1.
Given two complex numbers num1 and num2 as strings, return a string of the complex number that represents their multiplications.
Example 1:
Input: num1 = "1+1i", num2 = "1+1i" Output: "0+2i" Explanation: (1 + i) * (1 + i) = 1 + i2 + 2 * i = 2i, and you need convert it to the form of 0+2i.
Example 2:
Input: num1 = "1+-1i", num2 = "1+-1i" Output: "0+-2i" Explanation: (1 - i) * (1 - i) = 1 + i2 - 2 * i = -2i, and you need convert it to the form of 0+-2i.
Constraints:
num1andnum2are valid complex numbers.
Solutions
Solution 1: Simulation
Thinking
Complex multiplication is \((a+bi)(c+di)=(ac-bd)+(ad+bc)i\). The input is already a+bi, so four integers suffice.
Strip the trailing i, split on +, apply the formula, and format. No polynomial expansion is required.
We can convert the complex number string into its real part \(a\) and imaginary part \(b\), and then use the formula for complex number multiplication \((a_1 + b_1i) \times (a_2 + b_2i) = (a_1a_2 - b_1b_2) + (a_1b_2 + a_2b_1)i\) to calculate the result.
The time complexity is \(O(1)\), and the space complexity is \(O(1)\).
1 2 3 4 5 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 | |
1 2 3 4 5 | |