LeetCode-537 复数乘法

简介: LeetCode-537 复数乘法

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/complex-number-multiplication

题目描述

复数 可以用字符串表示,遵循 "实部+虚部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 都是有效的复数表示。

解题思路

一道简单的水题,一觉醒来乌克兰要没了。

根据+ 和i 做分界符将字符串转换成整形,然后根据复数相乘的规则算出结果拼装字符串。

代码展示

 

class Solution {
public:
    string complexNumberMultiply(string num1, string num2) {
        string strRet;
        int iNum[4];
        for(int i = 0; i < 2; i++)
        {
            int iTemp = 0;                
            string strTemp;
            for(auto c: i ? num2: num1)
            {
                if(c == '+' || c == 'i')
                {
                    iNum[iTemp + i * 2] = atoi(strTemp.c_str());
                    iTemp++;
                    strTemp.clear();
                }
                else
                {
                    strTemp.push_back(c);
                }
            }
        }
        strRet = to_string(iNum[0] * iNum[2] - iNum[1] * iNum[3]) +"+" + to_string(iNum[0] * iNum[3] + iNum[1] * iNum[2]) + "i";
        return  strRet;
    }
};

运行结果

 

相关文章
|
Java 应用服务中间件
jsp数据交互(一)
jsp数据交互(一)
|
9月前
|
存储 人工智能 OLAP
云端问道10期方案教学-百炼融合AnalyticDB,10分钟创建网站AI助手
本次分享由阿里云产品经理陈茏久介绍,主题为“百炼融合 AnalyticDB,10 分钟创建网站 AI 助手”。内容涵盖五个部分:大模型带来的行业变革、向量数据库驱动的 RAG 服务化探索、方案及优势与典型场景应用案例、产品选型配置介绍以及最新发布。重点探讨了大模型在各行业的应用,AnalyticDB 的独特优势及其在构建企业级知识库和增强检索服务中的作用。通过结合通义千问等产品,展示了如何在短时间内创建一个高效的网站 AI 助手,帮助企业快速实现智能化转型。
183 0
|
存储 数据挖掘 大数据
湖仓一体全面开启实时化时代
本文整理自阿里云开源大数据平台负责人王峰(莫问)老师在5月16日 Streaming Lakehouse Meetup · Online 上的分享,主要介绍在新一代湖仓架构上如何进行实时化大数据分析。
51071 12
湖仓一体全面开启实时化时代
|
机器学习/深度学习 JSON 自然语言处理
python自动化标注工具+自定义目标P图替换+深度学习大模型(代码+教程+告别手动标注)
python自动化标注工具+自定义目标P图替换+深度学习大模型(代码+教程+告别手动标注)
C++数组中插入元素。
C++数组中插入元素。
134 1
|
NoSQL Redis
Redis 使用 hyperLogLog 实现请求ip去重的浏览量
Redis 使用 hyperLogLog 实现请求ip去重的浏览量
91 0
|
监控 算法
class078 树型dp-上【算法】
class078 树型dp-上【算法】
149 0
|
存储 SQL 缓存
《MySQL高级篇》八、索引优化与查询优化(五)
《MySQL高级篇》八、索引优化与查询优化
《MySQL高级篇》八、索引优化与查询优化(五)
|
NoSQL Java Linux
Redis-02Redis在linux下的安装及常见问题
Redis-02Redis在linux下的安装及常见问题
229 0
|
BI 流计算
固定报表业务
固定报表业务