@@ -0,0 +1,1603 @@
+package leetcode.multiply_strings;%0A%0Apublic class Solution %7B%0A%09private static final int MODULUS = 1000000000;%0A%09private static final int DIGITS_PER_ELE = 9;%0A    public String multiply(String num1, String num2) %7B%0A    %09long%5B%5D bignum1 = new long%5B(num1.length() + 8) / 9%5D;%0A    %09int num1length = num1.length();%0A    %09long%5B%5D bignum2 = new long%5B(num2.length() + 8) / 9%5D;%0A    %09int num2length = num2.length();%0A    %09for(int i = 0; i %3C bignum1.length; i++)%7B%0A    %09%09bignum1%5Bi%5D = Long.parseLong(num1.substring(Math.max(0, num1length - (i + 1) * DIGITS_PER_ELE), num1length - i * DIGITS_PER_ELE));%0A    %09%7D%0A    %09for(int i = 0; i %3C bignum2.length; i++)%7B%0A    %09%09bignum2%5Bi%5D = Long.parseLong(num2.substring(Math.max(0, num2length - (i + 1) * DIGITS_PER_ELE), num2length - i * DIGITS_PER_ELE));%0A    %09%7D%0A%0A    %09long%5B%5D result = new long%5Bbignum1.length + bignum2.length%5D;%0A    %09for(int i = 0; i %3C bignum1.length; i++)%7B%0A    %09%09for(int j = 0; j %3C bignum2.length; j++)%7B%0A    %09%09%09result%5Bi + j%5D += bignum1%5Bi%5D * bignum2%5Bj%5D;%0A    %09%09%7D%0A    %09%7D%0A    %09for(int i = 0; i %3C bignum1.length + bignum2.length - 1; i++)%7B%0A    %09%09result%5Bi + 1%5D += result%5Bi%5D / MODULUS;%0A    %09%09result%5Bi%5D %25= MODULUS;%0A    %09%7D%0A    %09int idx;%0A    %09for(idx = bignum1.length + bignum2.length - 1; idx %3E 0 && result%5Bidx%5D == 0; idx--);%0A    %09StringBuilder ans = new StringBuilder();%0A    %09ans.append(String.format(%22%25d%22, result%5Bidx--%5D));%0A    %09for(;idx %3E= 0; idx--)%7B%0A    %09%09ans.append(String.format(%22%2509d%22, result%5Bidx%5D));%0A    %09%7D%0A    %09return ans.toString();%0A    %7D%0A    %0A    public static void main(String%5B%5D args)%7B%0A    %09System.err.println(new Solution().multiply(%229999999999%22, %229999999999%22));%0A    %7D%0A%7D%0A

Add java solution for 43. Multiply Strings