题目描述
blablabla
样例
blablabla
算法1
(暴力枚举) $O(n^2)$
居然可以这么简单,我做的时候光想着就是一棵二叉树的增强序列的前序或者后序序列的null节点恰比非null节点多一个了,贴个代码。
时间复杂度
参考文献
C++ 代码
#include<bits/stdc++.h>
using namespace std;
//增强序列
vector<char> ans;
void dfs(string s, int p, int n){
if(p >= n)return;
// cout << p << " " << n << endl;
int c = 0, f = 0;
int op = p;
p++;
while(f != c + 1 && p < n){
if(s[p++] == '#')f++;
else c++;
}
dfs(s, op + 1, p);
if(s[op] != '#')ans.push_back(s[op]);
dfs(s, p, n);
}
int main(){
string s;
cin >> s;
int p = 0;
int n = s.size();
dfs(s, p, n);
for(char c:ans){
cout << c << " ";
}
return 0;
}
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla