Leetcode:Multiply Strings
来源:互联网 发布:java架构师岗位职责 编辑:程序博客网 时间:2024/06/05 09:04
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.
实现两个字符串数字的乘法,模拟数学乘法即可。
实现代码:
class Solution {public: string multiply(string num1, string num2) { string result; int carry = 0; if(num1.size()==1&&num1[0]=='0'||num2.size()==1&&num2[0]=='0') return "0"; for(int i = 1 ; i < num1.size()+num2.size(); ++i) { int sum = carry; for(int j = 1 ; j <= num1.size(); ++j) { if(i+1-j>=1&&i+1-j<=num2.size()) sum += (num1[num1.size()-j]-'0')*(num2[num2.size()-1-i+j]-'0'); } carry = sum/10; result.insert(result.begin(),sum%10+'0'); } if(carry>0) result.insert(result.begin(),carry+'0'); return result; }};java版:
public class Solution { public String multiply(String num1, String num2) { if (num1 == null || num2 == null) { return null; } int len1 = num1.length(), len2 = num2.length(); int len3 = len1 + len2; int i, j, product, carry; int[] num3 = new int[len3]; for (i = len1 - 1; i >= 0; i--) { carry = 0; for (j = len2 - 1; j >= 0; j--) { product = carry + num3[i + j + 1] + Character.getNumericValue(num1.charAt(i)) * Character.getNumericValue(num2.charAt(j)); num3[i + j + 1] = product % 10; carry = product / 10; } num3[i + j + 1] = carry; } StringBuilder sb = new StringBuilder(); i = 0; while (i < len3 - 1 && num3[i] == 0) { i++; } while (i < len3) { sb.append(num3[i++]); } return sb.toString(); }}
0 0
- 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-Multiply Strings
- [leetcode] Multiply Strings
- LeetCode - Multiply Strings
- Leetcode: Multiply Strings
- LeetCode题解:Multiply Strings
- leetcode Multiply Strings
- LeetCode Multiply Strings
- LeetCode | Multiply Strings
- [LeetCode] Multiply Strings
- 百度 阿里 华为 腾讯 谷歌面试笔试题及解析
- 5. mysql 时间处理
- 对linux的IO的再认识
- DNS主从服务器的搭建
- Jad反编译jar包
- Leetcode:Multiply Strings
- Java 遍历指定目录及子目录下的文件
- 反射总结
- 黑马程序员_java_面向对象
- 笔记:上过的关于Coursera上的一些课程
- 浅谈select into
- Web App和Native App不是生死之争——反思HTML5惨痛的500天和四个谎言
- Oracle 中的 TO_DATE 和 TO_CHAR 函数 日期处理
- 基于Thinkphp很不错的一个响应式blog系统