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 }