大家好,我是 @负雪明烛。👈👈 点击关注,优质题解不间断。
题目大意
解题方法
Python 复数
题解区清一色的「模拟法」,作为不走寻常路的我,必须写一个“与众不同”来。
分享一个冷知识:Python 自带的就有复数类型,我们可以直接用。
Python 的复数是由一个实数和一个虚数组合构成,表示为:real + imag j
。
比如一个复数类型 a = 1 + 2j
,我们可以通过 a.real
和 a.imag
分别获取它的实数和虚数部分为 $1.0$ 和 $2.0$。
In [1]: a = 1 + 2j
In [2]: a
Out[2]: (1+2j)
In [3]: a.real
Out[3]: 1.0
In [4]: a.imag
Out[4]: 2.0
由于题目给出的数据格式是 "1+1i"
,我们把 "i"
替换成"j"
,再 eval()
一下就得到了复数类型。
复数的乘法规则就不再赘述了。
代码
Python 代码如下:
class Solution(object):
def complexNumberMultiply(self, num1, num2):
"""
:type num1: str
:type num2: str
:rtype: str
"""
num1 = eval(num1.replace("i", "j"))
num2 = eval(num2.replace("i", "j"))
real = num1.real * num2.real - num1.imag * num2.imag
imag = num1.real * num2.imag + num1.imag * num2.real
return "%d+%di" % (real, imag)
复杂度
- 时间复杂度:,题目给出的复数很小。
- 空间复杂度: #card=math&code=O%281%29&id=Pz3XE)
总结
- 本题解旨在让你扩展思路,面试过程中不要这么写哦~
我是 @负雪明烛 ,刷算法题 1000 多道,写了 1000 多篇算法题解,收获阅读量 300 万。
关注我,你将不会错过我的精彩动画题解、面试题分享、组队刷题活动,进入主页 @负雪明烛 右侧有刷题组织,从此刷题不再孤单。
- 在刷题的时候,如果你不知道该怎么刷题,可以看 LeetCode 应该怎么刷?
- 如果你觉得题目太多,想在短时间内快速提高,可以看 LeetCode 最经典的 100 道题。
- 送你一份刷题的代码模板:【LeetCode】代码模板,刷题必会