LeetCode: Multiply Strings

 1 public class Solution {
 2     public String multiply(String num1, String num2) {
 3         if (num1.equals("0") || num2.equals("0")) return "0";
 4         num1 = new StringBuilder(num1).reverse().toString();
 5         num2 = new StringBuilder(num2).reverse().toString();
 6         int[] result = new int[num1.length()+num2.length()];
 7         for (int i=0; i<num1.length(); i++) {
 8             int bit1 = num1.charAt(i)-'0';
 9             for (int j=0; j<num2.length(); j++) {
10                 result[i+j] += bit1 * (num2.charAt(j)-'0');
11             }
12         }
13         
14         String s = "";
15         for (int i=0; i < result.length; i++) {
16             int digit = result[i] % 10;
17             int carry = result[i] / 10;
18             s = Integer.toString(digit) + s;
19             if (i < result.length-1)
20                 result[i+1] += carry;
21         }
22         
23         int i=0;
24         while(s.charAt(i) == '0') i++;
25         
26         return s.substring(i);
27     }
28 }

 

posted on 2014-03-17 02:19  longhorn  阅读(100)  评论(0编辑  收藏  举报

导航