刷题第13天(LeetCode|刷题第13天(LeetCode #43.字符串相乘)
文章图片
思路分析:
【刷题第13天(LeetCode|刷题第13天(LeetCode #43.字符串相乘)】由于题目要求,不得使用直接将输入转换为整数进行计算,我们可以利用模拟乘法的竖式计算来完成字符串的相乘。
借用LeetCode上的动图模拟:
文章图片
代码实现:
class Solution
{public:
string multiply(string num1, string num2)
{int n1=num1.size();
int n2=num2.size();
string res(n1+n2,'0');
if(num1=="0"||num2=="0")
return "0";
for(int i=n2-1;
i>=0;
i--)
{for(int j=n1-1;
j>=0;
j--)
{int ans=(num1[j]-'0')*(num2[i]-'0')+(res[i+j+1]-'0');
res[i+j+1]=ans%10+'0';
res[i+j]+=ans/10;
}
}
if(res[0]=='0')
res=res.erase(0,1);
return res;
}
};
运行结果(c++):
文章图片
推荐阅读
- Java架构专栏|Kafka 一文读懂
- Java|求所有质因子(Java)
- 剑指offer第二版|剑指offer 44. 从1到n整数中1出现的次数
- Python第二天( 变量详解及变量赋值)
- verilog|verilog实现1101序列检测器
- 政采云前端小报第118期
- 刷题记录|力扣周赛310场题解
- 关于正则表达式中replace的第二个参数
- 麒麟操作系统|麒麟操作系统 (kylinos) 从入门到精通 - 研发环境- 第三十五篇 屏幕录制、录音
- 投稿|第四范式冲刺IPO,难逃AI玩家通病?