本地编译没问题,测试样例也ok,思路很清晰,这题本身也很水,为什么会这样啊?
#include <iostream>
using namespace std;
string s1,s2;
void dfs(string s1,string s2) {
char root = s2[0];
int l = s1.find(root) , r = s1.size() - l - 1;
string s1left = s1.substr(0,l) , s1right = s1.substr(l+1,r);
string s2left = s2.substr(1,l) , s2right = s2.substr(l+1,r);
if(l) {
dfs(s1left,s2left);
}
if(r) {
dfs(s1right,s2right);
}
cout << root;
}
int main(){
while(cin>>s2>>s1) {
dfs(s1,s2);
cout << endl;
}
return 0;
}