首页 > 其他 > 详细

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

时间:2019-06-07 23:04:48      阅读:175      评论:0      收藏:0      [点我收藏+]

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;
    }
}

参考资料

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

原文:https://www.cnblogs.com/hglibin/p/10989455.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!