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 + 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.
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; }}
参考资料