3 条题解
-
0
#include <bits/stdc++.h> using namespace std; string post_str; string in_str; void dfs(int l1, int r1, int l2, int r2) { if (l1 > r1 || l2 > r2) return; int i = in_str.find(post_str[r1]); int cnt = i - l2; cout << post_str[r1]; dfs(l1, l1 + cnt - 1, l2, i - 1); dfs(l1 + cnt, r1 - 1, i + 1, r2); } int main(){ cin >> in_str >> post_str; int right = in_str.size() - 1; dfs(0, right, 0, right); return 0; }
-
0
#include <bits/stdc++.h>
using namespace std;
string post_str;
string in_str;
void dfs(int l1, int r1, int l2, int r2)
{ if (l1 > r1 || l2 > r2) return;
int i=in_str.find(post_str[r1]);
int cnt=i-l2;
cout<<post_str[r1];
dfs(l1,l1+cnt-1,l2,i-1);
dfs(l1+cnt,r1-1,i +1,r2);}
int main(){
cin>>in_str>>post_str;
int right=in_str.size()-1;
dfs(0,right,0,right);
return 0;
}
-
-1
#include <bits/stdc++.h>
using namespace std; string post_str; string in_str; void dfs(int l1, int r1, int l2, int r2) { if (l1 > r1 || l2 > r2) return; int i = in_str.find(post_str[r1]); int cnt = i - l2; cout << post_str[r1]; dfs(l1, l1 + cnt - 1, l2, i - 1); dfs(l1 + cnt, r1 - 1, i + 1, r2); } int main() { cin >> in_str >> post_str; int right = in_str.size() - 1; dfs(0, right, 0, right); return 0; }
- 1
信息
- ID
- 653
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 6
- 标签
- 递交数
- 19
- 已通过
- 12
- 上传者