Algorithms—43.Multiply Strings
2015-07-27 11:05
579 查看
思路:按照乘法的定义,逐位相乘。
耗时:368ms,中下游。
public class Solution { public String multiply(String num1, String num2) { if (num1.equals("0")||num2.equals("0")) { return "0"; } if (num1.length()<num2.length()) { return multiply(num2,num1); } int l1=num1.length(); int[] n1=new int[l1]; for (int i = 0; i <l1; i++) { n1[l1-i-1]=Integer.parseInt(num1.substring(i, i+1)); } int l2=num2.length(); int[] n2=new int[l1]; for (int i = 0; i <l2; i++) { n2[l2-i-1]=Integer.parseInt(num2.substring(i, i+1)); } int[] a=new int[l1+l2-1]; int sum=0; int carry=0; for (int i = 0; i < a.length; i++) { // 每一位乘级相加的结果 for (int j = Math.max(0,i-l2+1); j <= Math.min(i,l1-1); j++) { sum += n1[j] * n2[i-j]; } // 加进位 sum += carry; carry = sum / 10; sum%=10; a[i]=sum; sum = 0; } StringBuffer sb=new StringBuffer(); if (carry!=0) { sb.append(String.valueOf(carry)); } for (int i = a.length-1; i >=0 ; i--) { sb.append(String.valueOf(a[i])); } return sb.toString(); } }
耗时:368ms,中下游。
相关文章推荐
- Google hosts
- ajaxfileupload 始终不执行success 只执行error方法;SyntaxError: expected expression, got '<
- poj 2195 Going Home(最小费最大流)
- django 1.8 官方文档翻译: 4-2-4 人性化
- 访问速度google的hosts文件【再版】
- Google跨域配置
- UVA 11383 Golden Tiger Claw
- Hugo简介
- HDU 1013 Digital Roots
- item-based algorithm
- Django中的“惰性翻译”方法的相关使用
- 使用Django的模版来配合字符串翻译工作
- 在Django的模型和公用函数中使用惰性翻译对象
- 在Django框架中设置语言偏好的教程
- Greedy --- HNU 13320 Please, go first
- HDU 1076 An Easy Task
- hdu 1533 Going Home (最小费用最大流)
- Google Play 服务提示更新、Google play 闪退等问题
- HDU 2952 Counting Sheep (DFS)
- HDU 5310 Souvenir