Loading

537. [字符串]复数计算

537.复数乘法

两个复数的运算规则是这样的:\((a_1 + b_1i) * (a_2 + b_2i) = (a_1 * a_2 - b_1 * b_2) + (a_1 * b_2 + a_2 * b_1)i\)

基于这个公式,我们只需要截取获得 String a, String b 中的 a1、a2、b1、b2 进行运算,然后使用 StringBuffer() 进行拼接即可。

// 执行用时: 1 ms , 在所有 Java 提交中击败了 97.00% 的用户 
// 内存消耗: 36.7 MB , 在所有 Java 提交中击败了 88.99% 的用户

class Solution {
    public String complexNumberMultiply(String a, String b) {
		String[] arrayOfA = a.split("\\+");
        String[] arrayOfB = b.split("\\+");

        int a1 = Integer.parseInt(arrayOfA[0]), a2 = Integer.parseInt(arrayOfB[0]);
        int b1 = Integer.parseInt(arrayOfA[1].substring(0, arrayOfA[1].length() - 1));
        int b2 = Integer.parseInt(arrayOfB[1].substring(0, arrayOfB[1].length() - 1));  
        
        StringBuffer ans = new StringBuffer();
        ans.append(a1 * a2 - b1 * b2);
        ans.append("+");
        ans.append(a1 * b2 + a2 * b1);
        ans.append("i");
        return ans.toString();
    }
}
posted @ 2020-10-24 12:06  上海井盖王  阅读(85)  评论(0)    收藏  举报