竖式乘法 , 数组保存进位



public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 
     * @param s string字符串 第一个整数
     * @param t string字符串 第二个整数
     * @return string字符串
     */
    public String solve(String s, String t) {
        if(s.equals("0")||t.equals("0")){
            return "0";
        }
        int len1 = s.length();
        int len2  = t.length();
        int[] res = new int[len1+len2];
        for(int i = len1-1;i>=0;i--){
            int n1 = s.charAt(i)-'0';
            for(int j = len2-1;j>=0;j--){
                int n2  =  t.charAt(j)-'0';
                // res[i+j+1] 代表进位
                int sum = res[i+j+1]+ n1*n2;
                res[i+j+1] = sum%10;
                res[i+j] += sum/10;
            }
        }
        int begin = 0;
        if(res[0] == 0) {
            begin++;
        }
        StringBuilder sb = new StringBuilder();
        for(int i = begin;i<len1+len2;i++){
            sb.append(String.valueOf(res[i]));
        }
        return sb.toString();
    }
}