输入样例:
9
ABDFGHIEC
FDHGIBEAC
输出样例:
5
AC代码:
#include<iostream>
using namespace std;
int dfs(char a[], char b[], int n) {
if (n == 0) return 0;
int i;
for (i = 0; i < n; i++) {
if (a[0] == b[i]) break;
}
int x = dfs(a + 1, b, i)+1;//递归求左子树高度
int y = dfs(a+i+1,b+i+1,n-i-1)+1;//递归求右子树高度
return x > y ? x : y;
}
int main()
{
char preArr[55];
char midArr[55];
int n;
scanf("%d", &n);
scanf("%s", preArr);
getchar();
scanf("%s", midArr);
int ans = dfs(preArr, midArr, n);
printf("%d", ans);
system("pause");
return 0;
}