我的这份代码可以AC
#include<bits/stdc++.h>
using namespace std;
void DFS(string mid, string end) {
if (mid.size() > 0) {
cout << end[end.size() - 1];
int k;
for (int i = 0; i < mid.size(); i++) {
if (mid[i] == end[end.size() - 1]) {
k = i;
break;
}
}
DFS(mid.substr(0, k), end.substr(0, k));
DFS(mid.substr(k + 1), end.substr(k, mid.size() - k - 1));
}
}
int main() {
string midSt, endSt;
cin >> midSt >> endSt;
DFS(midSt, endSt);
return 0;
}
但是如果我将BFS函数的返回值从void改为int,那么这道题每个数据点都会MLE。
我不是很清楚这是什么原因,有大佬能够好心解释一下吗?