感觉华为的编程题考查的不是人的编程能力啊。。。

输入输出调试半小时是什么鬼。。#华为#
全部评论
第二题,很简单的拓扑排序,为了表示形式,愣是花了太长时间
点赞 回复 分享
发布于 2017-08-16 21:38
public class NIOTest { public static void main(String[] args) { Scanner sc = new Scanner(System.in); ArrayList<Node> res = new ArrayList<>(); HashMap<String, Node> relation = new HashMap<>(); boolean flag = true; while (sc.hasNext()) { String str = sc.nextLine(); parse(str, relation); if (str.charAt(str.length() - 1) != ',') break; } while (!relation.isEmpty() && flag == true) { flag = false; Node node = null; for (Map.Entry<String, Node> entry : relation.entrySet()) { Node cur = entry.getValue(); if (cur.degree == 0) { node = cur; break; } } if (node != null) { for (Node temp : node.relation) { temp.degree--; } res.add(node); relation.remove(node.name); flag = true; } } for (Map.Entry<String, Node> entry : relation.entrySet()) { res.add(entry.getValue()); } Collections.sort(res, new Comparator<Node>() { public int compare(Node a, Node b) { return a.name.compareTo(b.name); } }); for (int i = 0; i < res.size() - 1; i++) { boolean b = res.get(i).degree == 0 ? false : true; System.out.println("{" + res.get(i).name + ", " + b + "},"); } boolean b = res.get(res.size() - 1).degree == 0 ? false : true; System.out.println("{" + res.get(res.size() - 1).name + ", " + b + "}"); } public static void parse(String str, HashMap<String, Node> relation) { String[] strs = str.split(","); String A = strs[0].substring(1, strs[0].length()); String B = strs[1].substring(1, strs[1].length() - 1); Node nodeB = relation.get(B); if (nodeB == null) { nodeB = new Node(B, null, 1); relation.put(B, nodeB); } else { nodeB.degree++; } Node nodeA = relation.get(A); if (nodeA == null) { nodeA = new Node(A, nodeB, 0); relation.put(A, nodeA); } else { nodeA.relation.add(nodeB); } } public static class Node { public String name; public LinkedList<Node> relation = new LinkedList<>(); public int degree; public Node (String name, Node relation, int degree) { this.name = name; if (relation != null)this.relation.add(relation); this.degree = degree; } } }
点赞 回复 分享
发布于 2017-08-16 21:51
通过率多少你
点赞 回复 分享
发布于 2017-08-16 21:55
最后2道都没有百分之100,唉
点赞 回复 分享
发布于 2017-08-16 21:55
我66 0 33.、。是不是稳挂
点赞 回复 分享
发布于 2017-08-16 22:09
第二题本地正常的JAVA代码,贴上去编译不过去,改了Main了导包了,直接跪!
点赞 回复 分享
发布于 2017-08-16 22:16
为什么你们可以不按照他规定的接口来写?
点赞 回复 分享
发布于 2017-08-16 22:28
问个问题 为啥我这次 就没有收到 笔试  是不是我春招华为挂了 就没机会了???
点赞 回复 分享
发布于 2017-08-16 22:29
感觉华为考的是编程思想,还有格式,不是AC,估计和网易一样,一张一张的试卷筛选
点赞 回复 分享
发布于 2017-08-17 08:33
public class NIOTest { public static void main(String[] args) { Scanner sc = new Scanner(System.in); ArrayList<Node> res = new ArrayList<>(); HashMap<String, Node> relation = new HashMap<>(); boolean flag = true; while (sc.hasNext()) { String str = sc.nextLine(); parse(str, relation); if (str.charAt(str.length() - 1) != ',') break; } while (!relation.isEmpty() && flag == true) { flag = false; Node node = null; for (Map.Entry<String, Node> entry : relation.entrySet()) { Node cur = entry.getValue(); if (cur.degree == 0) { node = cur; break; } } if (node != null) { for (Node temp : node.relation) { temp.degree--; } res.add(node); relation.remove(node.name); flag = true; } } for (Map.Entry<String, Node> entry : relation.entrySet()) { res.add(entry.getValue()); } Collections.sort(res, new Comparator<Node>() { public int compare(Node a, Node b) { return a.name.compareTo(b.name); } }); for (int i = 0; i < res.size() - 1; i++) { boolean b = res.get(i).degree == 0 ? false : true; System.out.println("{" + res.get(i).name + ", " + b + "},"); } boolean b = res.get(res.size() - 1).degree == 0 ? false : true; System.out.println("{" + res.get(res.size() - 1).name + ", " + b + "}"); } public static void parse(String str, HashMap<String, Node> relation) { String[] strs = str.split(","); String A = strs[0].substring(1, strs[0].length()); String B = strs[1].substring(1, strs[1].length() - 1); Node nodeA = relation.get(A); if (nodeA == null) { nodeA = new Node(A, null, 1); relation.put(A, nodeA); } else { nodeA.degree++; } Node nodeB = relation.get(B); if (nodeB == null) { nodeB = new Node(B, nodeA, 0); relation.put(B, nodeB); } else { nodeB.relation.add(nodeA); } } public static class Node { public String name; public LinkedList<Node> relation = new LinkedList<>(); public int degree; public Node (String name, Node relation, int degree) { this.name = name; if (relation != null)this.relation.add(relation); this.degree = degree; } } }
点赞 回复 分享
发布于 2017-08-17 10:03
模块依赖关系分析    点击链接看源码
点赞 回复 分享
发布于 2017-08-19 13:41

相关推荐

点赞 评论 收藏
分享
暴走萝莉莉:这是社招场吧,作为HR说个实话:这个维护关系的意思是要有政府资源,在曾经的工作中通过人脉资源拿下过大订单的意思。这个有相关管理经验,意思也是真的要有同岗位经验。应酬什么的对于业务成交来说就算不乐意也是常态,就是要求说话好听情商高,酒量好。
点赞 评论 收藏
分享
评论
点赞
4
分享
牛客网
牛客企业服务