拼多多笔试第二题

昨天没通过,今天发现多大了一个空格,不知道现在能不能通过全部案例。

#include<iostream>
#include<vector>
#include<string>
#include<cstdio>
#include<algorithm>
using namespace std;

struct node
{
    string name;
    vector<node *> son;
    node *parent;
};

bool sortCmp(node* const a1,  node* const a2)
{
    return a1->name < a2->name;
}

void printTree(node* n, string str)
{
    for(int i=0; i<n->son.size(); i++)
    {
        string strTemp = str;
        cout<<str;
        if(i < n->son.size()-1)
            cout<<"|-- "<<n->son[i]->name<<endl;
        else
            cout<<"`-- "<<n->son[i]->name<<endl;

        if(i<n->son.size()-1)
            strTemp += "|   ";
        else
            strTemp += "    ";

        if(n->son[i]->son.size()>0)
        {
            printTree(n->son[i], strTemp);
        }
    }
}

int main()
{
    int N;
    cin>>N;
    vector<node> data(N);
    node *head = NULL;
    for(int i=0; i<N; i++)
    {
        int id;
        cin>>data[i].name>>id;
        if(id != -1)
            data[id].son.push_back(&data[i]);
    }
    for(int i=0; i<N; i++)
        sort(data[i].son.begin(), data[i].son.end(), sortCmp);

    cout<<data[0].name<<endl;
    printTree(&data[0], "");
}
全部评论

相关推荐

找到实习了&nbsp;给了150一天&nbsp;但是说是低代码&nbsp;值得去吗
码农索隆:是在没实习,可去,待个一两周,不行就润呗
点赞 评论 收藏
分享
06-15 20:57
已编辑
门头沟学院 Java
CARLJOSEPH...:年轻人有傲气很正常,但是建议工作前洗净傲气。 说实在的,什么奖学金什么奖项的都很一般。尊重你的老师,在有时间的时候去上课,真遇到走不开的事,请态度端正地向你的老师说明情况,请求请假。我相信任何一个有师德的老师都会允许的(我的老师就是这样)。
点赞 评论 收藏
分享
06-25 16:25
梧州学院 Java
愿汐_:项目介绍那么长,然而你做了啥就一句话?
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 11:30
找工作7个月,投了7000封,3段世界五百强实习,才有一个offer,牛油们肯定比我强吧
码农索隆:不对不对不对,实习经历这么厉害,简历也没少投,问题出在哪呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务