LeetCode-537. Complex Number Multiplication
解题思路
- 复数的乘法本来也不难,加上题目输入和输出的格式都很规范,一定是实数加虚数的格式:
A+Bi
哪怕A是0,B是0或者负数,都是这个格式,所以变简单更多了。
代码实现-Java
该题没什么算法吧,直接上代码:
class Solution {
public String complexNumberMultiply(String a, String b) {
if(a == null){
return b;
}else if(b == null){
return a;
}
int realA = Integer.valueOf(a.split("\\+")[0]);
int CompA = Integer.valueOf(a.split("\\+")[1].split("i")[0]);
int realB = Integer.valueOf(b.split("\\+")[0]);
int CompB = Integer.valueOf(b.split("\\+")[1].split("i")[0]);
int resultReal = realA*realB - CompA*CompB;
int resultComp = realA*CompB + realB*CompA;
String result = String.valueOf(resultReal) + "+" + String.valueOf(resultComp) + "i";
return result;
}
}
不过这里要注意一点就是split
函数的应用,原型是split(String regex)
,参数是一个正则表达式,所以我们分割时直接用+
是不行的,+
在正则表达式中有特殊含义,所以要用\\+
或[+]
。
运行结果性能数据:
Runtime:1 ms, faster than 80.68% of Java online submissions for Complex Number Multiplication.
Memory Usage:34.2 MB, less than 100.00% of Java online submissions for Complex Number Multiplication.