Multiply Strings

来源:互联网 发布:日本充气娃娃淘宝网 编辑:程序博客网 时间:2024/05/19 23:24

题目:

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.

分析:

大整数的乘法;

参考代码如下:

http://www.programcreek.com/2014/05/leetcode-multiply-strings-java/

public class Solution {    public String multiply(String num1, String num2) {    String n1 = new StringBuilder(num1).reverse().toString();    String n2 = new StringBuilder(num2).reverse().toString();     int[] d = new int[num1.length()+num2.length()];     //multiply each digit and sum at the corresponding positions    for(int i=0; i<n1.length(); i++){        for(int j=0; j<n2.length(); j++){            d[i+j] += (n1.charAt(i)-'0') * (n2.charAt(j)-'0');        }    }     StringBuilder sb = new StringBuilder();     //calculate each digit    for(int i=0; i<d.length; i++){        int mod = d[i]%10;        int carry = d[i]/10;        if(i+1<d.length){            d[i+1] += carry;        }        sb.insert(0, mod);    }     //remove front 0's    while(sb.charAt(0) == '0' && sb.length()> 1){        sb.deleteCharAt(0);    }     return sb.toString();}}


0 0
原创粉丝点击