問題描述

給定兩個表示複數的字符串。字符串的格式為 a+bi,其中 ab 是整數,i 是虛數單位。返回它們的乘積結果。

示例 1: 輸入:"1+1i""1+1i" 輸出:"0+2i"

示例 2: 輸入:"1+-1i""1+-1i" 輸出:"-2+-2i"

解法一

解題思路:

我們需要將兩個複數相乘,即 (a+bi) * (c+di) = (ac-bd) + (ad+bc)i。我們可以將輸入的字符串解析為兩個整數 ab,然後進行乘法運算,並構造輸出字符串。

/*
 * @lc app=leetcode.cn id=537 lang=javascript
 *
 * [537] Complex Number Multiplication
 */

// @lc code=start
function complexNumberMultiply(num1, num2) {
    let [a1, b1] = num1.split('+').map(Number);
    let [a2, b2] = num2.split('+').map(Number);
    let realPart = a1 * a2 - b1 * b2;
    let imaginaryPart = a1 * b2 + b1 * a2;
    return `${realPart}+${imaginaryPart}i`;
}
// @lc code=end