int s_arr[101000];
int t_arr[101000];
int ans[1010000];//不知为啥如果将数组定义在函数内部,且动态创建的时候,就会出错,运行结果还不知道是啥
class Solution {
	public:
		/**
		 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
		 *
		 *
		 * @param s string字符串 第一个整数
		 * @param t string字符串 第二个整数
		 * @return string字符串
		 */
		string solve(string s, string t) {
			// write code here
			if (s == "0" || t == "0")
				return "0";
			int slen  = s.size();
			int tlen  = t.size();

			//将两个字符串转化为整形数组
			for (int i = 0; i < slen; i++) {
				s_arr[i] = s[slen - 1 - i] - '0';
			}


			for (int j = 0; j < tlen; j++) {
				t_arr[j] = t[tlen - 1 - j] - '0';
			}

			int k = slen + tlen;
			cout << k << endl;

			//进行模拟两个高精度乘法
			for (int i = 0; i < slen; i++) {
				for (int j = 0; j < tlen; j++) {
					ans[i + j] += s_arr[i] * t_arr[j];
				}
			}

			for (int i = 0; i <= k; i++) {
				cout << ans[i];
			}
			cout << endl;
			//进行进位处理
			for (int i = 0; i <= k ; i++ ) {
				if (ans[i] >= 10) {
					ans[i + 1] += ans[i] / 10;
					ans[i] = ans[i] % 10;

				}
			}

		
		
			//对高位的零进行处理
			while (ans[k] == 0) {
				k--;
			}
		

			//逆序输出处理
			string ans2 = "";
			for (; k >= 0; k--)
				ans2 = ans2 + char(ans[k] + '0');
			return ans2;

		}
};