给个offer就去 level
获赞
202
粉丝
1
关注
0
看过 TA
1
123
2018
Java
IP属地:未知
暂未填写个人简介
私信
关注
2017-10-16 10:33
已编辑
123 Java
如题
投递京东等公司10个岗位 >
0 点赞 评论 收藏
分享
2017-09-27 14:22
123 Java
0 点赞 评论 收藏
分享
2017-09-05 14:16
已编辑
123 Java
#include <string> #include <iostream> #include <map> #include <functional> #include <algorithm> #include <vector> #include <cstdio> using namespace std; int n,m; vector<string> nameMap;//index to name vector<vector<string>> tree; map<st...
heliar_mk:贴一个我的,思路也是用邻接表保存节点的string和他自身是哪一个节点,然后串在每个父节点后面最后dfs。就是前缀的那些符号条件要仔细考虑。 #include <iostream> #include <string> #include <vector> #include <algorithm> using namespace std; void DFS(vector<vector<pair<string,int>>> &dir, int root, string mask) { string next_mask; for (int i = 0; i < dir[root].size(); ++i) { pair<string, int> node = dir[root][i]; cout << mask; if (i != dir[root].size() - 1) { cout << "|-- "; } else { cout << "`-- "; } cout << node.first << endl; if (i == dir[root].size() - 1) { next_mask = " " + mask; } else { next_mask = mask + "| "; } DFS(dir, node.second, next_mask); } } bool cmp(pair<string, int> a, pair<string, int> b) { return a.first < b.first; } int main() { int n; cin >> n; vector<vector<pair<string,int>>> dir(n + 1); for (int i = 0; i < n; ++i) { string node_s; int fa_idx; pair<string, int> node; cin >> node_s >> fa_idx; node.first = node_s; node.second = i+1; dir[fa_idx + 1].push_back(node); } for (int i = 0; i < dir.size(); ++i) { sort(dir[i].begin(), dir[i].end(),cmp); } cout << dir[0][0].first << endl; DFS(dir, 1, ""); return 0; }
投递拼多多集团-PDD等公司10个岗位 >
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务