import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串 第一个整数
* @param t string字符串 第二个整数
* @return string字符串
*/
public String solve (String s, String t) {
if(s == null || t== null || s.length() == 0 || t.length() == 0){
return "非法输入";
}
if(s.charAt(0) == '0' || t.charAt(0) == '0'){
return "0";
}
int []data = new int[s.length()+t.length()];// 最高长度为此,可验证,比如99*99 = (100-1)(100-1) = 10000 - 1 = 9999,或者 99 * 9 = 891
for(int i=s.length()-1;i>=0;i--){
for(int j=t.length()-1;j>=0;j--){
data[i+j+1] += (s.charAt(i) - '0')*(t.charAt(j) - '0');// 相同位置积累,比如12*21=(10+2)*(20+1)中的,1*10和20*2是处于同一个位置data[2]
}
}
StringBuffer sb = new StringBuffer();
int carry = 0;
for(int i=data.length-1; i>0; --i){
int temp = data[i]+carry; // 上一个的进位以及当前记录的进位和当前位
carry = temp/10;// 当前进位,肯定是1位数
sb.append(temp%10);//当前位
}
if(carry != 0){ // 若最后有个进位
sb.append(carry);
}
return sb.reverse().toString();
}
}