Skip to content

Commit 2cc15a1

Browse files
committed
solve problem Complex Number Multiplication
1 parent f089b4f commit 2cc15a1

File tree

5 files changed

+48
-0
lines changed

5 files changed

+48
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,7 @@ All solutions will be accepted!
284284
|223|[Rectangle Area](https://leetcode-cn.com/problems/rectangle-area/description/)|[java/py/js](./algorithms/RectangleArea)|Medium|
285285
|419|[Battleships In A Board](https://leetcode-cn.com/problems/battleships-in-a-board/description/)|[java/py/js](./algorithms/BattleshipsInABoard)|Medium|
286286
|129|[Sum Root To Leaf Numbers](https://leetcode-cn.com/problems/sum-root-to-leaf-numbers/description/)|[java/py/js](./algorithms/SumRootToLeafNumbers)|Medium|
287+
|537|[Complex Number Multiplication](https://leetcode-cn.com/problems/complex-number-multiplication/description/)|[java/py/js](./algorithms/ComplexNumberMultiplication)|Medium|
287288

288289
# Database
289290
|#|Title|Solution|Difficulty|
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Complex Number Multiplication
2+
This problem is easy to solve
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class Solution {
2+
public String complexNumberMultiply(String a, String b) {
3+
java.util.regex.Pattern pattern = java.util.regex.Pattern.compile("(.*)\\+(.*)i");
4+
java.util.regex.Matcher matcher1 = pattern.matcher(a),
5+
matcher2 = pattern.matcher(b);
6+
matcher1.find();
7+
matcher2.find();
8+
int real1 = Integer.valueOf(matcher1.group(1)),
9+
imaginary1 = Integer.valueOf(matcher1.group(2)),
10+
real2 = Integer.valueOf(matcher2.group(1)),
11+
imaginary2 = Integer.valueOf(matcher2.group(2));
12+
13+
int real = real1 * real2 - imaginary1 * imaginary2,
14+
imaginary = real1 * imaginary2 + real2 * imaginary1;
15+
16+
return String.format("%d+%di", real, imaginary);
17+
}
18+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
/**
2+
* @param {string} a
3+
* @param {string} b
4+
* @return {string}
5+
*/
6+
var complexNumberMultiply = function(a, b) {
7+
let [, real1, imaginary1] = a.match(/(.*)\+(.*)i/),
8+
[, real2, imaginary2] = b.match(/(.*)\+(.*)i/),
9+
real = parseInt(real1) * parseInt(real2) - parseInt(imaginary1) * parseInt(imaginary2),
10+
imaginary = parseInt(real1) * parseInt(imaginary2) + parseInt(real2) * parseInt(imaginary1)
11+
12+
return `${real}+${imaginary}i`
13+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Solution(object):
2+
def complexNumberMultiply(self, a, b):
3+
"""
4+
:type a: str
5+
:type b: str
6+
:rtype: str
7+
"""
8+
pattern = re.compile(r'(.*)\+(.*)i')
9+
real1, imaginary1 = pattern.match(a).groups()
10+
real2, imaginary2 = pattern.match(b).groups()
11+
12+
real = int(real1) * int(real2) - int(imaginary1) * int(imaginary2)
13+
imaginary = int(real1) * int(imaginary2) + int(real2) * int(imaginary1)
14+
return '%d+%di' % (real, imaginary)

0 commit comments

Comments
 (0)