PTA运行时错误怎么改?

根据先序遍历和后序遍历求二叉树高度,用pta的测试模块测试能输出正确结果,但是提交后同样的输入pta的反馈是运行时错误,怎么改比较合适?

#include  
#include 
using namespace std;

int num = 0;//层数
int max1 = 0;
void find(string s, string pre, string in) {
    char x = pre[0];
    num++;
    if (pre.length() == 1) {
        max1 = num > max1 ? num : max1;
        return;
    }
    string pre1, pre2, in1, in2;
    int i = in.find(x);
    in1 = string(in, 0, i);
    in2 = string(in, i + 1);
    pre1 = string(pre, 1, in1.length());
    pre2 = string(pre, 1 + in1.length());
    find(s, pre1, in1);
    num--;
    find(s, pre2, in2);
}
int main()
{
    string s, t;
    int n;
    cin >> n >> s >> t;
    find(s, s, t);
    cout << max1;
    return 0;
}