1 条题解
-
0
#include<bits/stdc++.h> using namespace std; char a[35], b[35]; void dfs(int aL, int aR, int bL, int bR) { if(aL > aR) return ; int p; for(int i = bL; i <= bR; i++) if(a[aL] == b[i]) { p = i; break; } int LL = (p - 1) - bL + 1; //左孩子树有多少个点 dfs(aL + 1, aL + 1 + LL - 1, bL, p - 1); dfs(aL + 1 + LL - 1 + 1, aR, p + 1, bR); printf("%c", b[p]); } int main() { scanf("%s%s", a + 1, b + 1); int len = strlen(a + 1); dfs(1, len, 1, len); return 0; }
- 1
信息
- ID
- 62
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- 递交数
- 527
- 已通过
- 111
- 上传者