LeetCode 537. 复数乘法(Complex Number Multiplication)

537. 复数乘法
537. Complex Number Multiplication

题目描述
Given two strings representing two complex numbers.

You need to return a string representing their multiplication. Note i2 = -1 according to the definition.

LeetCode537. Complex Number Multiplication中等

Example 1:
Input: "1+1i", "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: "1+-1i", "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.

Note:

  1. The input strings will not have extra blank.
  2. 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.

Java 实现

class Solution {
    // 复数的乘法: (a+bi)(c+di)=(ac-bd)+(bc+ad)i
    public String complexNumberMultiply(String a, String b) {
        int[] arrA = getValue(a);
        int[] arrB = getValue(b);
        int x = arrA[0] * arrB[0] - arrA[1] * arrB[1];
        int y = arrA[1] * arrB[0] + arrA[0] * arrB[1];
        return x + "+" + y + "i";
    }

    private int[] getValue(String s) {
        String[] str = s.split("\\+");
        int[] val = new int[2];
        val[0] = Integer.parseInt(str[0]);
        val[1] = Integer.parseInt(str[1].replace("i", ""));
        return val;
    }
}

参考资料

上一篇:用HttpClient5多次上传PDF文件到OSS时,头文件信息被多次追加问题


下一篇:Leetcode 刷题笔记(八) —— 字符串篇之 KMP