Я недавно начал пробовать POJ с использованием Java. Я столкнулся с проблемой (также доступна здесь на UVa), которая известна как Восстановление дерева .Здесь мой код:
import java.util.Scanner;
публичный класс Main {
static String pre, in;
static char[] post = new char[100];
static int len;
public static void solve(int p1, int p2, int m1, int m2) {
if (p1 > p2)
return;
int i;
for (i = m1; i <= m2; i++) {
if(in.charAt(i)==pre.charAt(p1))
break;
}
post[--len] = pre.charAt(p1);
if (p1 == p2)
return;
solve(p1 + (i + 1) - m1, p2, i + 1, m2);
solve(p1 + 1, p1 + i - m1, m1, i - 1);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
pre = sc.next();
in = sc.next();
len = pre.length();
solve(0, len - 1, 0, len - 1);
System.out.println(post);
}
}
}
Код хорошо работает в заданных тестовых примерах с параметром компиляции по умолчанию eclipse. Как бы он ни сообщал Ошибка времени выполнения при отправке. Мне интересно, как это могло произойти. Спасибо.