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

  • 实部 是一个整数,取值范围是 [-100, 100]
  • 虚部 也是一个整数,取值范围是 [-100, 100]
  • i² == -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 都是有效的复数表示。

分析:

方法:模拟

假设两个复数为 a + bi 和 c + di,那么 ( a + bi ) * ( c + di ) = ( a * c - b * d ) + ( a * d + b * c ) i,我们只需要通过切割得出 a,b,c,d 的值根据以上公式就可以得出结果复数。

时间复杂度:O(1)  
空间复杂度:O(1)

class Solution {public String complexNumberMultiply(String num1, String num2) {//获取实部虚部String[] s1 = num1.split("\\+"), s2 = num2.split("\\+");//结果StringBuilder res = new StringBuilder();//计算实部和虚部数字int a = Integer.parseInt(s1[0]), b = Integer.parseInt(s2[0]), c = Integer.parseInt(s1[1].substring(0, s1[1].length()-1)), d = Integer.parseInt(s2[1].substring(0, s2[1].length()-1));//添加实部积res.append(a * b - c * d);//添加加号res.append('+');//添加虚部积res.append(a * d + c * b);//添加ires.append('i');//返回结果return res.toString();}
}

题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/complex-number-multiplication

JAVA练习165-复数乘法相关推荐

  1. java字符串拆分成数组_用Java实现JVM第八章《数组和字符串》

    小傅哥 | https://bugstack.cn 沉淀.分享.成长,专注于原创专题案例,以最易学习编程的方式分享知识,让自己和他人都能有所收获.目前已完成的专题有:Netty4.x实战专题案例.用J ...

  2. java工程师面试题大全100%公司笔试题你都能碰到几个

    1.  hibernate中离线查询去除重复项怎么加条件??? dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); 2.  http协议及端 ...

  3. java面试详解-总有你能碰得到的

    1.  hibernate中离线查询去除重复项怎么加条件? dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); 2.  http协议及端口, ...

  4. java工程师面试题

    1.hibernate中离线查询去除重复项怎么加条件?? dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); 2.http协议及端口,smt ...

  5. maven命令行创建web项目报错:java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils...

    早上新建一个web项目,没想到一敲命令创建就失败了,真是出师不利.各种折腾无果,当然我也可以用eclipse直接创建的,就是想搞清楚状况.刚刚才发现问题原因,这个结果我也是醉了,太坑爹了. 问题现象: ...

  6. 笔记72 高级SSM整合

    遇到的问题: 1.进行spring mvc测试的时候报错 测试代码: 1 package com.li.test; 2 3 import com.github.pagehelper.PageInfo; ...

  7. 向HBase中导入数据3:使用MapReduce从HDFS或本地文件中读取数据并写入HBase(增加使用Reduce批量插入)

    前面我们介绍了: 向HBase中导入数据1:查询Hive后写入 向HBase中导入数据2:使用MapReduce从HDFS或本地文件中读取数据并写入HBase(只使用Map逐条查询) 为了提高插入效率 ...

  8. htmlunit模拟登录

    htmlunit jar项目路径http://sourceforge.net/projects/htmlunit/files/htmlunit/ demo代码如下 public class AutoL ...

  9. com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接

    com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接 驱动版本 最新 ...

  10. java学习(165):inetaddress和inetsocketaddress

    import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.UnknownHostException ...

最新文章

  1. 用批处理编译*.sln工程(转)
  2. bzoj2427: [HAOI2010]软件安装
  3. 【干货】2014Q4手游崩溃数据报告,iphone6第1、三星第2
  4. IsWow64Process 判断操作系统位数
  5. 计组之I/O系统:1、I/O系统基本概念
  6. 智能提示_文明放大镜·7 | 清新智能语音提示桩让你过马路除了看灯还可以听,赞...
  7. 函数 tostring_QDate、QTime、QDateTime的相关函数说明
  8. 【DS】数据结构八股文英文版(1)
  9. C语言实现去掉字符串中重复的字符
  10. 全国各省市区城市编码SQL
  11. Order by 语句 的使用
  12. 大文件前端直接上传至七牛
  13. java微服务Nacos配置管理
  14. 程序员,在北上广深杭赚够100万,就逃回二三四线城市生活,靠谱吗?
  15. OSI七层模型、TCP/IP五层(或四层)模型
  16. 干货:从零设计高并发架构
  17. STM32 IAP 在线升级详解
  18. 中e管家婚后有孩子怎么理财
  19. 三菱四节传送带控制梯形图_基于三菱FX—2N系列PLC的四节传送带模拟控制设计...
  20. 计算机网络技术主要包括计算机技术和什么,《计算机网络技术》第6章作业的参考答案...

热门文章

  1. 怎么将pdf转换成word?
  2. 了解Wi-fi频段概念
  3. PLC转行嵌入式软件开发的辛路历程
  4. 创新创业大赛计算机,计算机学院第六届创新创业大赛圆满结束
  5. Esp32 TCA9555 基于Arduino基于 microByte
  6. 298day(点触验证)
  7. Ubuntu16.04的图形化界面系统安装+NIVIDIA驱动安装-Cuda-Cudnn+教程全(后面安装系统通用)
  8. android测试方法及流程,一种Android通讯终端硬件测试方法、测试工艺以及整机测试流程与流程...
  9. JSF 原理简要介绍
  10. 【2011年全国试题3】已知循环队列存储在一维数组A[0…n-1],且队列非空时,front和rear分别指向队头元素和队尾元素。若初始时队列为空,且