1 条题解

  • 0
    @ 2022-12-8 21:02:23
    #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
    上传者