1 条题解
-
0
#include<bits/stdc++.h> using namespace std; string s; int root; //根节点编号 int ls[105]; //i 号节点的左孩子编号 int rs[105]; //i 号节点的右孩子编号 //把 s[l]~ 对应的树构建好,并返回树长度 int build(int l) { if(l>=s.length()) return 0; int nowRoot=l; if(s[nowRoot]=='.'){ ls[nowRoot]=-1; rs[nowRoot]=-1; return 1; } ls[nowRoot] = l+1; int lLen = build(l+1); rs[nowRoot] = l+lLen+1; int rLen = build(l+lLen+1); return 1+lLen+rLen; } void dfs_zhong(int now) { if(now==-1) return; dfs_zhong(ls[now]); if(s[now]!='.') cout<<s[now]; dfs_zhong(rs[now]); } void dfs_hou(int now) { if(now==-1) return; dfs_hou(ls[now]); dfs_hou(rs[now]); if(s[now]!='.') cout<<s[now]; } int main() { cin>>s; root=0; build(0); dfs_zhong(root); cout<<"\n"; dfs_hou(root); cout<<"\n"; return 0; }
- 1
信息
- ID
- 559
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 4
- 标签
- (无)
- 递交数
- 51
- 已通过
- 26
- 上传者