1. 问题描述:

复数可以用字符串表示,遵循 "实部+虚部i" 的形式,并满足下述条件:

  • 实部是一个整数,取值范围是 [-100, 100]
  • 虚部也是一个整数,取值范围是 [-100, 100]

i ^ 2 == -1
给你两个字符串表示的复数 num1 和 num2 ,请你遵循复数表示形式,返回表示它们乘积的字符串。

示例 1:

输入:num1 = "1+1i", num2 = "1+1i"
输出:"0+2i"
解释:(1 + i) * (1 + i) = 1 + i2 + 2 * i = 2i ,你需要将它转换为 0+2i 的形式。

示例 2:

输入:num1 = "1+-1i", num2 = "1+-1i"
输出:"0+-2i"
解释:(1 - i) * (1 - i) = 1 + i2 - 2 * i = -2i ,你需要将它转换为 0+-2i 的形式。 
提示:
num1 和 num2 都是有效的复数表示。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/complex-number-multiplication

2. 思路分析:

分析题目可以知道我们根据复数的运算规则计算表达式的值即可,复数乘法的运算规则为:

(a + bi) * (c + di) = (ac + bd) + (ad + bc)i

所以我们的关键是根据已知的字符串得到上面表达式对应的a,b,c,d的值然后计算表达式的值即可。因为使用的是python语言所以可以使用split函数以"+"作为分隔符号分隔字符串的实部与虚部,然后再得到虚部对应的c,d数值最终就可以得到a,b,c,d的值。

3. 代码如下:

class Solution:# 得到虚部对应的数值def change(self, s):i = 0res = ""while i < len(s):c = s[i]if c != "i":res += celse:breaki += 1return int(res)# 主要是复数的运算规则def complexNumberMultiply(self, x: str, y: str) -> str:# 按照"+"得到复数分隔之后的实部与虚部x0 = x.split("+")y0 = y.split("+")a, c = int(x0[0]), int(y0[0])# 得到虚部对应的数值b = self.change(x0[1])d = self.change(y0[1])# 返回计算结果return str(a * c - b * d) + "+" + str(a * d + b * c) + "i"

537 复数乘法(模拟)相关推荐

  1. 模拟卷Leetcode【普通】537. 复数乘法

    汇总:模拟卷Leetcode 题解汇总 537. 复数乘法 复数 可以用字符串表示,遵循 "实部+虚部i" 的形式,并满足下述条件: 实部 是一个整数,取值范围是 [-100, 1 ...

  2. LeetCode:537. 复数乘法————中等

    题目 537. 复数乘法 复数 可以用字符串表示,遵循 "实部+虚部i" 的形式,并满足下述条件: 实部 是一个整数,取值范围是 [-100, 100] 虚部 也是一个整数,取值范 ...

  3. 复数乘法_leetcode No.537 复数乘法

    题目链接: 537. 复数乘法 - 力扣(LeetCode)​leetcode-cn.com 题目描述: 给定两个表示复数的字符串. 返回表示它们乘积的字符串.注意,根据定义 i2 = -1 . 示例 ...

  4. Java实现 LeetCode 537 复数乘法(关于数学唯一的水题)

    537. 复数乘法 给定两个表示复数的字符串. 返回表示它们乘积的字符串.注意,根据定义 i2 = -1 . 示例 1: 输入: "1+1i", "1+1i" ...

  5. LeetCode 537. 复数乘法

    文章目录 1. 题目 2. 字符串提取数字 1. 题目 给定两个表示复数的字符串. 返回表示它们乘积的字符串.注意,根据定义 i2 = -1 . 示例 1: 输入: "1+1i", ...

  6. Leetcode 每日一题双题版(2.25+2.24)模拟练细节

    Leetcode 每日一题双题版(2.25+2.24)模拟练细节 前言 刚刚敲了今天刷新的题目,然后昨天的也写了,就想着更新一下blog 两道题都是模拟题,对于模拟,我的看法就是看懂题目,拿捏细节,难 ...

  7. python自动投递简历_python模拟登录前程无忧,发送简历

    主要想模拟登录,抓取相关公司,发送简历. 已经实现验证码手动输入,抓取相关公司,发送简历这个功能现在在想如何实现. import requests from bs4 import BeautifulS ...

  8. python输入学号查成绩_Python实践学习笔记:模拟登录教务系统实现微信查成绩

    python+selenium+itchat模拟登录学校教务系统,获取个人成绩,通过微信发送. 先看看最终效果: 〇.背景 学习python一段时间,觊觎学校的教务系统很久了. 寒假开始,大部分同学陆 ...

  9. 如何学好C语言--你的学渣朋友告诉你

    光说不练假把式,光练不说傻把式,又练又说真把式. 真实感受,不是我不想学,是我真的不知道我哪里不会啊和得怎么做啊?本文作者当初就是这么废掉的 推荐两个练习的网站 (一)C语言网 https://www ...

最新文章

  1. 为什么要继承Serializable类?
  2. Codeforces 458A Golden System
  3. shell 判断_shell之条件判断和流程控制
  4. APL开发日志--2012-11-18
  5. springcloud 错误: 找不到或无法加载主类
  6. Rinne Loves Xor
  7. 昆明学院计算机专业在哪个校区,昆明学院有几个校区及校区地址
  8. 凭实力搞砸公司重大项目,老板看到直呼内行
  9. Struts2的简单介绍
  10. 【多线程】LockSupport 使用 原理 源码 分析
  11. Entity Framework 6 Recipes 2nd Edition(12-1)译 - 当SaveChanges( ) 被调用时执行你的代码...
  12. 20190914:(leetcode习题)验证二叉搜索树
  13. 【转】一分钟读懂互联网广告竞价策略GFP+GSP+VCG
  14. 宝塔面板如何部署Java项目教程【新版】
  15. [JSOI2012]玄武密码 题解(AC自动机)
  16. python~运算符_python运算符
  17. excel表格生成图片的方式
  18. 安卓手机电脑投屏软件【apowermirror、虫洞投屏软件】
  19. 10大好用的语音识别软件
  20. 二项式定理与杨辉三角

热门文章

  1. 如何做一个优秀的男人
  2. Android八门神器(一):OkHttp框架源码解析 1
  3. ARM hint instruction-WFI(Wait For Interrupt)指令详解
  4. miix5 u盘安装linux,联想Miix510U盘装系统win10教程
  5. editplus怎么在键盘输入
  6. serverStatus详解
  7. 代码质量管理工具:SonarQube常见的问题及正确解决方案
  8. MPLS及LDP协议基础(转载)
  9. 互联网10大最有效的盈利模式
  10. 计算机网络管理设计,计算机网络管理系统设计与应用分析