博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[leetcode-537-Complex Number Multiplication]
阅读量:5798 次
发布时间:2019-06-18

本文共 1533 字,大约阅读时间需要 5 分钟。

Given two strings representing two .

You need to return a string representing their multiplication. Note i2 = -1 according to the definition.

Example 1:

Input: "1+1i", "1+1i"Output: "0+2i"Explanation: (1 + i) * (1 + i) = 1 + i2 + 2 * i = 2i, and you need convert it to the form of 0+2i.

 

Example 2:

Input: "1+-1i", "1+-1i"Output: "0+-2i"Explanation: (1 - i) * (1 - i) = 1 + i2 - 2 * i = -2i, and you need convert it to the form of 0+-2i.

 

Note:

  1. The input strings will not have extra blank.
  2. The input strings will be given in the form of a+bi, where the integer a and b will both belong to the range of [-100, 100]. And the output should be also in this form.

思路:

首先将 ‘+’找到,将字符串分成左右两部分,然后分别转换成整数就可以了。

int stringToint(string a,int& real,int& virtu)    {        int i = 0;        for (; i < a.size();i++)//找到+号 位置i        {            if (a[i] == '+') break;                     }                real = atoi(a.substr(0, i).c_str());        virtu = atoi(a.substr(i+1,a.size()-i-2).c_str());        //cout << real << " " << virtu << endl;            return 0;    }    string complexNumberMultiply(string a, string b)    {        if (a.size() == 0 || b.size() == 0) return "0";        int real1, virtu1, real2, virtu2,real,virtu;        stringToint(a, real1, virtu1);        stringToint(b, real2, virtu2);        real = real1*real2 - virtu1*virtu2;        virtu = real1*virtu2 + virtu1*real2;        char resu[128];        sprintf(resu, "%d+%di", real, virtu);        return resu;    }

 

转载于:https://www.cnblogs.com/hellowooorld/p/6622109.html

你可能感兴趣的文章
国内首例:飞步无人卡车携手中国邮政、德邦投入日常运营
查看>>
微软将停止对 IE 8、9和10的支持
查看>>
微服务架构会和分布式单体架构高度重合吗
查看>>
如何测试ASP.NET Core Web API
查看>>
《The Age of Surge》作者访谈
查看>>
测试人员的GitHub
查看>>
Spring Web Services 3.0.4.RELEASE和2.4.3.RELEASE发布
查看>>
有关GitHub仓库分支的几个问题
查看>>
无服务器计算的黑暗面:程序移植没那么容易
查看>>
云原生的浪潮下,为什么运维人员适合学习Go语言?
查看>>
Webpack入门教程三十
查看>>
EAServer 6.1 .NET Client Support
查看>>
锐捷交换机密码恢复(1)
查看>>
Kali linux virtualbox rc=1908 错误解决办法
查看>>
Erlang学习总结之Erlang语法中的逗号(,)、分号(;),句号(.)的正确用法...
查看>>
linux软件包管理之三(源代码安装)
查看>>
数据库三范式是什么?
查看>>
[转载]设置Ubuntu自动连接无线,无须再输入密钥环和无线密码
查看>>
九叔Xen App测试报告
查看>>
Apache配置
查看>>