# Solving Leetcode Interviews in Seconds with AI: Complex Number Multiplication


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "537" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like [Chatmagic](https://www.chatmagic.app), we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

	# Problem Statement
	> A complex number can be represented as a string on the form "real+imaginaryi" where:  real is the real part and is an integer in the range [-100, 100]. imaginary is 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:  num1 and num2 are valid complex numbers.  

	# Explanation
	Here's the breakdown of the solution:

*   **Parse Complex Numbers:** Extract the real and imaginary parts from the input strings.
*   **Perform Multiplication:** Apply the distributive property of complex number multiplication: (a + bi) * (c + di) = (ac - bd) + (ad + bc)i.
*   **Format Output:** Construct the resulting complex number string in the specified "real+imaginaryi" format.

*   **Runtime Complexity:** O(1), as the string operations and arithmetic are bounded by constant length inputs. **Storage Complexity:** O(1), as we use a fixed number of variables.

	
	# Code
	```python
	def complexNumberMultiply(num1: str, num2: str) -> str:
    """
    Multiplies two complex numbers represented as strings and returns the result in string format.
    """

    def parse_complex(num: str) -> tuple[int, int]:
        """Parses a complex number string into its real and imaginary parts."""
        real_str, imag_str = num.split('+')
        imag_str = imag_str[:-1]  # Remove the 'i'
        return int(real_str), int(imag_str)

    real1, imag1 = parse_complex(num1)
    real2, imag2 = parse_complex(num2)

    real_part = (real1 * real2) - (imag1 * imag2)
    imag_part = (real1 * imag2) + (imag1 * real2)

    return f"{real_part}+{imag_part}i"
	```
			
