537 复数乘法(中等

简介:

image-20221030160706881

解题思路:用加号作为分隔符,然后取出前后的所有数使用复数运算法则进行计算即可。题解如下,官方代码更简洁。

#
# @lc app=leetcode.cn id=537 lang=python3
#
# [537] 复数乘法
#

# @lc code=start
from re import I


class Solution:
    def complexNumberMultiply(self, num1: str, num2: str) -> str:
        #我的代码
        # num1 = num1.split('+')
        # num2 = num2.split('+')
        # a1, a2 = int(num1[0]), int(num2[0])
        # b1, b2 = int(num1[1][:(len(num1[1])-1)]
        #              ), int(num2[1][:(len(num2[1])-1)])
        # a = a1*a2-b1*b2
        # b = a1*b2+a2*b1
        # return str(a)+'+'+str(b)+'i'
        # leetcode官方题解
        real1, img1 = map(int, num1[:-1].split('+'))
        real2, img2 = map(int, num2[:-1].split('+'))
        return f'{real1*real2-img1*img2}+{real1*img2+img1*real2}i'

# @lc code=end

#学习python代码中map函数的用法
//官方C++代码,使用正则表达式
class Solution {
public:
    string complexNumberMultiply(string num1, string num2) {
        regex re("\\+|i"); 
        vector<string> complex1(sregex_token_iterator(num1.begin(), num1.end(), re, -1), std::sregex_token_iterator());
        vector<string> complex2(sregex_token_iterator(num2.begin(), num2.end(), re, -1), std::sregex_token_iterator());
        int real1 = stoi(complex1[0]);
        int imag1 = stoi(complex1[1]);
        int real2 = stoi(complex2[0]);
        int imag2 = stoi(complex2[1]);
        return to_string(real1 * real2 - imag1 * imag2) + "+" + to_string(real1 * imag2 + imag1 * real2) + "i";
    }
};

作者:LeetCode-Solution
链接:https://leetcode.cn/problems/complex-number-multiplication/solution/fu-shu-cheng-fa-by-leetcode-solution-163i/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相关文章
|
7月前
|
机器学习/深度学习 PyTorch API
MindIE Torch快速上手
MindIE Torch 是一款高效的深度学习推理优化工具,支持 PyTorch 模型在 NPU 上的高性能部署。其核心特性包括:1) 子图与单算子混合执行,配合 torch_npu 实现高效推理;2) 支持 C++ 和 Python 编程语言,灵活适配不同开发需求;3) 兼容多种模式(TorchScript、ExportedProgram、torch.compile),覆盖广泛场景;4) 支持静态与动态 Shape 模型编译,满足多样化输入需求。通过简单易用的 API,开发者可快速完成模型加载、编译优化、推理执行及离线模型导出等全流程操作,显著提升开发效率与性能表现。
BOSHIDA DC电源模块在电容滤波器上的设计
DC电源模块在电容滤波器上的设计是电源管理系统中非常重要的一部分,其目的是为了确保电源输出电压的稳定性和纹波尽可能小。在设计中,需要考虑到电源负载的变化和变压器等电源配件的电磁干扰等因素。下面我们详细介绍一下电容滤波器设计中的相关知识。
BOSHIDA DC电源模块在电容滤波器上的设计
|
机器学习/深度学习 数据采集 Python
从零到一:手把手教你完成机器学习项目,从数据预处理到模型部署全攻略
【10月更文挑战第25天】本文通过一个预测房价的案例,详细介绍了从数据预处理到模型部署的完整机器学习项目流程。涵盖数据清洗、特征选择与工程、模型训练与调优、以及使用Flask进行模型部署的步骤,帮助读者掌握机器学习的最佳实践。
763 1
|
机器学习/深度学习 JavaScript 前端开发
PyCharm 2024.1最新变化
PyCharm 2024.1最新变化
|
Dart 算法 数据可视化
用flutter实现五种寻路算法的可视化效果,快来看看!
半年前我写了一篇有关排序算法可视化的文章,挺有意思,还被张风捷特烈-张老师收录进了FlutterUnit,今天让我们再来做一个有关寻路算法的可视化效果吧!
|
Java Spring
自定义转换之美:深入Spring自定义类型转换器的奥秘
自定义转换之美:深入Spring自定义类型转换器的奥秘
192 0
|
关系型数据库 MySQL 数据库
使用 Docker 搭建一个“一主一从”的 MySQL 读写分离集群(超详细步骤
使用 Docker 搭建一个“一主一从”的 MySQL 读写分离集群(超详细步骤
732 0
|
存储 Dubbo Java
dubbo 源码 v2.7 分析:通信过程及序列化协议
前面我们介绍了dubbo的核心机制,今天将开始分析远程调用流程。毕竟,作为一个rpc框架,远程调用是理论的核心内容。通过对dubbo相关实现的探究,深入了解rpc原理及可能的问题。
444 1
|
存储 SQL 关系型数据库
计算机的数据库
计算机的数据库
125 2
|
算法 C++ 开发者
40运算符重载
40运算符重载
63 0