LeetCode 43. Multiply Strings
来源:互联网 发布:百度域名劫持事件 编辑:程序博客网 时间:2024/06/07 22:35
Given two non-negative integers num1 and num2 represented as strings, return the product of num1 and num2.Note:The length of both num1 and num2 is < 110.Both num1 and num2 contains only digits 0-9.Both num1 and num2 does not contain any leading zero.You must not use any built-in BigInteger library or convert the inputs to integer directly
思路:
由上图可以看到对于某个数的num[i]*num[j]的值(看成两位数),其个位位于乘积的i+j+1的位置,十位位于i+j的位置。那么只要把两个乘数的每一位相乘,并把其结果结算到相应的位置,就可以得出结果。代码如下:
class Solution {public: string multiply(string num1, string num2) { int l1=num1.size(); int l2=num2.size(); vector<int> res(l1+l2,0); for(int i=l1-1;i>=0;i--){ for(int j=l2-1;j>=0;j--){ int mul=(num1[i]-'0')*(num2[j]-'0'); int p1=i+j,p2=i+j+1; int sum=mul+res[p2]; res[p1]+=sum/10; res[p2]=sum%10; } } string s; int index=0; for(int i=0;i<res.size();i++){ if(res[i]==0){ index++; continue; } break; } for(int i=index;i<res.size();i++){ s+=to_string(res[i]); } return s.size()==0?"0":s; }};
阅读全文
0 0
- [LeetCode]43.Multiply Strings
- LeetCode --- 43. Multiply Strings
- [Leetcode] 43. Multiply Strings
- [leetcode] 43.Multiply Strings
- 43. Multiply Strings LeetCode
- leetcode 43. Multiply Strings
- LeetCode 43. Multiply Strings
- LeetCode 43. Multiply Strings
- LeetCode 43. Multiply Strings
- [leetcode] 43. Multiply Strings
- Leetcode 43. Multiply Strings
- (Leetcode)43. Multiply Strings
- LeetCode - 43. Multiply Strings
- leetcode 43. Multiply Strings
- [LeetCode] 43. Multiply Strings
- leetcode 43. Multiply Strings
- Leetcode 43. Multiply Strings
- leetcode 43. Multiply Strings
- Java调用C++程序
- LAMP安装(五) 安装php的扩展 (以memcache为例)
- 半小时搭建 Ubuntu16.04 + CUDA8.0 + CUDNN5.0 + Caffe 环境
- Set List 直接转String[]数组
- Android开发实现QQ三方登录
- LeetCode 43. Multiply Strings
- 对程序学习的看法
- 关于HTTP协议,一篇就够了 (转)
- Spring学习
- Monkey常用命令的应用
- Couldn't find leader offsets for Set([smt,0], [smt,1], [smt,2])
- 搭建hexo博客(1)
- CentOS7下FTP服务的搭建
- Java笔记(一):内存与对象分配