力扣537(java)-复数乘法(中等)
题目:
复数 可以用字符串表示,遵循 "实部+虚部i" 的形式,并满足下述条件:
实部 是一个整数,取值范围是 [-100, 100]
虚部 也是一个整数,取值范围是 [-100, 100]
i2 == -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/problems/complex-number-multiplication
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
模拟一下复数相乘的过程,再进行组合:
( a + b i) * ( c + d i) = a*c + a *di +b * ci + bi * d i = (a*c - b*d) + (a*d + b * c) i
代码:
小知识:
1.java中split函数参数特殊字符的处理(转义),如 "." 、"\"、"|" 、"$" 、"*" 、"+"
split() 方法根据匹配给定的正则表达式来拆分字符串,多个分隔符,可以用 | 作为连字符,使用 \进行转义,因为\本身就是一个正则表达式的字符,所以还需要加一个 \ ,即每次用两个 \ (\\)
num1.split("\\+|i")
含义:使用 + 或者 i 作为分割符进行分割
2.Integer.parseInt() 是Integer包装类下的一个方法,作用是将()内的String类型字符串转化为int类型
String str = "1234";
int x = Integer.parseInt(str); //x的值为1234
力扣537(java)-复数乘法(中等)的更多相关文章
- 力扣1689. 十-二进制数的最少数目-C语言实现-中等难度题
题目 传送门 如果一个十进制数字不含任何前导零,且每一位上的数字不是 0 就是 1 ,那么该数字就是一个 十-二进制数 .例如,101 和 1100 都是 十-二进制数,而 112 和 3001 不是 ...
- 力扣1438. 绝对差不超过限制的最长连续子数组-C语言实现-中等难度
题目 传送门 文本 给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit . 如果不存在满足条 ...
- 力扣1052. 爱生气的书店老板-C语言实现-中等难度
题目 传送门 文本 今天,书店老板有一家店打算试营业 customers.length 分钟.每分钟都有一些顾客(customers[i])会进入书店,所有这些顾客都会在那一分钟结束后离开. 在某些时 ...
- 力扣算法经典第一题——两数之和(Java两种方式实现)
一.题目 难度:简单 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数, 并返回它们的数组下标. 你可以假设每种输入只会对应一 ...
- 【力扣leetcode】-787. K站中转内最便宜的航班
题目描述: 有 n 个城市通过一些航班连接.给你一个数组 flights ,其中 flights[i] = [fromi, toi, pricei] ,表示该航班都从城市 fromi 开始,以价格 p ...
- 力扣算法题—069x的平方根
实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: 2 示例 ...
- JS数据结构第六篇 --- 二叉树力扣练习题
1.第226题:翻转二叉树 递归+迭代两种实现方式: /** 反转二叉树 * Definition for a binary tree node. * function TreeNode(val) { ...
- 力扣(LeetCode)删除排序链表中的重复元素II 个人题解
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 思路和上一题类似(参考 力扣(LeetCode)删除排序链表中的重复元素 个人题解)) 只不过这里需要用到一个前 ...
- C++双指针滑动和利用Vector实现无重复字符的最长子串—力扣算法
题目: 力扣原题链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 给定一个字符串, ...
- LeetCode 1244. 力扣排行榜
地址 https://www.acwing.com/solution/LeetCode/content/5765/ 题目描述新一轮的「力扣杯」编程大赛即将启动,为了动态显示参赛者的得分数据,需要设计一 ...
随机推荐
- async await $api vue
async getDataNew () { const res = await this.$api('apiPath') if (res && res.status === 20) { ...
- PDF的分割与合并
1.进行PDF切割 python代码如下: # 20220521 # 1.选择要分割的文件 # 2.选择要保存的位置,分割为多个文件时,可自动用页码命名 # 3.输入要分割的页码,可以是一个范围1-2 ...
- java 控制台 输出进度条
效果 代码 public static void main(String[] args) { int total = 100; for (int i = 0; i < total; i++) ...
- proteus的五状态显示控制器
proteus的五状态显示控制器 1.实验原理 使用的核心器件还是4028,BCD译码器.将输入的四个信号接入输入端,输出信号选取0.1.2.4.8这五个输出状态驱动led显示.发光LED需要加入保护 ...
- KingbaseES 原生XML系列一 -- XML构造函数
KingbaseES 原生XML系列一--XML构造函数(XML,XMLPARSE,XMLSERIALIZE,IS-DOCUMENT,XML_IS_WELL_FORMED,XML_IS_WELL_FO ...
- .NET分布式Orleans - 8 - 贪吃蛇项目实战(准备阶段)
到目前为止,Orleans7的核心概念基本已经学完,我准备使用Orleans7做一个项目实战,来总结自己的学习效果. 项目效果 通过Orleans7来完成一个贪吃蛇游戏,要求如下: 可以多人在线玩 贪 ...
- Spring框架之控制反转IoC(Inversion of Control)的理解
简单理解: 控制反转就是将代码的调用权(控制权)从调用方转移给被调用方(服务提供方). 解释一下: 如果我们需要创建某个类,就需要程序员去修改代码,然后才可以得到想要的类.反转的意思就是不需要程序员去 ...
- C语言跨平台时间操作计算时间差
头文件 #pragma once #if defined(_WIN32) #include<sys/timeb.h> #if defined(__UNIX__)||defined(__AP ...
- 一文搞懂Java的工具类和API
1.工具类(Utility Class) 在Java中,工具类通常包含一系列静态方法,用于执行常见的任务,这些任务可能不直接关联到特定的业务逻辑,而是用于处理一些基础的数据转换.字符串操作.文件操作等 ...
- #期望dp#CF1810G The Maximum Prefix
洛谷题面 CF1810G 分析 考虑最大前缀和满足两个条件,就是所有前缀和都不超过,以及一定有一个等于. 那么就要保证它能达到最大值且一直不能高于它 设 \(dp[i][j][0/1]\) 表示前 \ ...