leetcode:Multiply Strings(字符串的乘法)【面试算法题】
2013-09-27 11:30
417 查看
题目:
Given two numbers represented as strings, return multiplication of the numbers as a string.
Note: The numbers can be arbitrarily large and are non-negative.
题意给两个字符串表示的数字,计算他们的乘积。
其实就是手写一个大数乘法,先翻转字符串便于从低位开始计算。
模拟乘法的运算过程,把中间结果存在data中,最后在考虑data的进位并存到结果字符串里。
注意点的就是考虑结果的前置0不要添加进去。
Given two numbers represented as strings, return multiplication of the numbers as a string.
Note: The numbers can be arbitrarily large and are non-negative.
题意给两个字符串表示的数字,计算他们的乘积。
其实就是手写一个大数乘法,先翻转字符串便于从低位开始计算。
模拟乘法的运算过程,把中间结果存在data中,最后在考虑data的进位并存到结果字符串里。
注意点的就是考虑结果的前置0不要添加进去。
int data[100000]; class Solution { public: string multiply(string num1, string num2) { reverse(num1.begin(),num1.end()); reverse(num2.begin(),num2.end()); memset(data,0,sizeof(data)); int len1=num1.length(); int len2=num2.length(); int i,j; for(i=0;i<len1;++i)for(j=0;j<len2;++j) { data[j+i]+=(num1[i]-'0')*(num2[j]-'0'); } int p,temp; i=p=0; while(i<len1+len2-1||p!=0) { temp=data[i]+p; data[i]=temp%10; p=temp/10; ++i; } string result; bool flag=0; for(;i>=0;--i) { if(flag==0&&data[i]==0)continue; else { flag=1; result+=(char)(data[i]+'0'); } } if(flag==0)return "0"; else return result; } };
相关文章推荐
- leetcode:Multiply Strings(字符串的乘法)【面试算法题】
- 【LeetCode-面试算法经典-Java实现】【05-Longest Palindromic Substring(最大回文字符串)】
- leetcode:Palindrome Partitioning (字符串分割成回文串的所有方式) 【面试算法题】
- 【LeetCode-面试算法经典-Java实现】【151-Reverse Words in a String(反转字符串中的单词)】
- 【LeetCode-面试算法经典-Java实现】【008-String to Integer (atoi) (字符串转成整数)】
- 【LeetCode-面试算法经典-Java实现】【205-Isomorphic Strings(同构字符串)】
- 【LeetCode-面试算法经典-Java实现】【008-String to Integer (atoi) (字符串转成整数)】
- 【LeetCode-面试算法经典-Java实现】【003-Longest Substring Without Repeating Characters(最长非重复子字符串)】
- 【LeetCode-面试算法经典-Java实现】【05-Longest Palindromic Substring(最大回文字符串)】
- 【LeetCode-面试算法经典-Java实现】【058-Length of Last Word (最后一个单词的长度)】
- 面试算法--KMP字符串查询算法
- leetcode:Longest Substring Without Repeating Characters (双指针扫描) 【面试算法题】
- 【LeetCode-面试算法经典-Java实现】【058-Length of Last Word (最后一个单词的长度)】
- leetcode:N-Queens (n皇后问题) 【面试算法题】
- leetcode:Palindrome Number (判断数字是否回文串) 【面试算法题】
- 【LeetCode-面试算法经典-Java实现】【172-Factorial Trailing Zeroes(阶乘尾后0的数目)】
- 【LeetCode-面试算法经典-Java实现】【064-Minimum Path Sum(最小路径和)】
- 【LeetCode-面试算法经典-Java实现】【所有题目目录索引】
- 【LeetCode-面试算法经典-Java实现】【092-Reverse Linked List II(反转单链表II)】
- 【LeetCode-面试算法经典-Java实现】【004-Median of Two Sorted Arrays(两个排序数组的中位数)】