嘘~ 正在从服务器偷取页面 . . .

洛谷P1305 新二叉树 题解


洛谷P1305 新二叉树 题解

题目链接:P1305 新二叉树

题意

输入一串二叉树,输出其前序遍历。

输入1

6
abc
bdi
cj*
d**
i**
j**

输出1

abdicj

虽然是大水题,但是有个解法还是很妙的

利用前序遍历的性质,它的子树一定在它后面。

直接贴代码了,感觉很妙:

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <iomanip>
#include <random>
using namespace std;
#define int long long
#define INF 0x3f3f3f3f3f3f3f3f
#define N (int)()

int n;
string s,t;
signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    // freopen("check.in","r",stdin);
    // freopen("check.out","w",stdout);
    cin >> n >> s;
    for(int i=2; i<=n; i++)
    {
        cin >> t;
        int x=s.find(t[0]);
        s.erase(x,1); s.insert(x,t);
    }
    for(int i=0; i<s.size(); i++)
        if(s[i]!='*') cout << s[i];
    return 0;
}

文章作者: q779
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 q779 !
评论
  目录