LeetCode 043 Multiply Strings
来源:互联网 发布:java 面试threadlocal 编辑:程序博客网 时间:2024/05/18 16:37
求两个大数的乘法,用字符串表示的那种。
直接模拟,不过算乘法的时候需要将字符串颠倒下次序。然后需要另外考虑一个比较大的数字乘以0,如果不另外处理的话,结果为很多0的字符串的,这样的话就当是一个0输出。
class Solution {public: string multiply(string num1, string num2) { reverse(num1.begin(),num1.end()); reverse(num2.begin(),num2.end()); vector<int>get_ans; for(int ii=0;ii<num1.size();ii++){ int cnt=0; int step=ii; for(int jj=0;jj<num2.size();jj++){ int ans=(num1[ii]-'0')*(num2[jj]-'0')+cnt; int uu=ans%10; cnt=ans/10; if(get_ans.size()<step+1)get_ans.push_back(uu); else { get_ans[step]+=uu;cnt+=get_ans[step]/10;get_ans[step]%=10; } step++; } if(cnt){ if(get_ans.size()<step+1)get_ans.push_back(cnt); else get_ans[step]+=cnt; } } string ff; for(int ii=0;ii<get_ans.size();ii++) ff+=(get_ans[ii]+'0'); reverse(ff.begin(),ff.end()); int nu=0; for(int ii=0;ii<ff.size();ii++){ if(ff[ii]=='0')nu++; } if(nu==ff.size())return "0"; return ff;}};
0 0
- LeetCode 043 Multiply Strings
- LeetCode 043 Multiply Strings
- LeetCode 043 Multiply Strings
- [LeetCode]043-Multiply Strings
- leetcode 043 Multiply Strings
- LeetCode 043 Multiply Strings
- leetcode 043 —— Multiply Strings
- 2017-0220-leetcode-043 Multiply Strings
- leetcode解题方案--043-- Multiply Strings
- LeetCode: Multiply Strings
- LeetCode Multiply Strings
- LeetCode: Multiply Strings
- [Leetcode] Multiply Strings
- [LeetCode] Multiply Strings
- [Leetcode] Multiply Strings
- LeetCode 45: Multiply Strings
- [LeetCode]Multiply Strings
- [LeetCode] Multiply Strings
- [LeetCode]038-Count And Say
- CC2541 128bit UUID 官方教程有错修改方法!
- ios触摸事件四:触摸
- 帆软报表FineReport中数据连接之Tomcat配置JNDI连接
- window启动关闭nginx
- LeetCode 043 Multiply Strings
- (精)字符集GBK和UTF8的区别说明
- pthread_cond_wait() 使用
- 在线旅游平台如何借监控工具确保第三方API高可用
- Swift ?? 符号的使用
- Android 系统编译 1
- 行为型:设计模式之迭代器模式(二十一)
- 简单适配器(自定义适配器)
- 防止表单重复提交的方法-javascript与session