public String add(char[] num1,char[] num2){
        int index1 = num1.length -1;
        int index2 = num2.length -1;
        int carry = 0;
        StringBuffer buffer = new StringBuffer();
        while(index1 >= 0 && index2 >= 0){
            int r1 = num1[index1] - '0';
            int r2 = num2[index2] - '0';
            int r = r1 + r2 + carry;
            buffer.append(r%10);
            carry = r/10;
            index1--;
            index2--;
        }
        while(index1 >= 0){
            int r1 = num1[index1] - '0';
            int r = r1 + carry;
            buffer.append(r%10);
            carry = r/10;
            index1--;
        }
        while(index2 >= 0){
            int r2 = num2[index2] - '0';
            int r = r2 + carry;
            buffer.append(r%10);
            carry = r/10;
            index2--;
        }
        if (carry != 0) {
            buffer.append(carry);
        }
        return buffer.reverse().toString();
    }
https://leetcode.com/discuss/questions/oj/multiply-strings
src/com/interview/string/MultiplyStrings.java