题目

给定两个表示复数的字符串。 返回表示它们乘积的字符串。注意,根据定义 i = -1 。

题解

(a+bi)(c+di) = (ac-bd)+(ad+bc)i
看示例没有a-bi的形式,都是a+bi,b<0会多一个负号,字符串可以放心切,结果也不用二次处理,包括出现0时。

code

very easy难度,用py就可以想出来了。

写完这篇刚好可以去看一部看了就寂寞的新番了。

  1. class Solution:
  2. def complexNumberMultiply(self, a: str, b: str) -> str:
  3. ar,ai = a.split('+')
  4. br,bi = b.split('+')
  5. ar,br = int(ar),int(br)
  6. ai,bi = int(ai[:-1]), int(bi[:-1])
  7. ansr = str(ar * br - ai * bi)
  8. ansi = str(ai * br + ar * bi) + 'i'
  9. return ansr + '+' + ansi