关注
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;
}
}
}
查看原帖
点赞 6
相关推荐
//鲨鱼辣椒:什么什么都作废了,如同一场大雪覆盖了前半生的荒唐
点赞 评论 收藏
分享
牛客热帖
正在热议
# 拼多多求职进展汇总 #
236107次浏览 2038人参与
# ai智能作图 #
26530次浏览 315人参与
# 北方华创开奖 #
66706次浏览 551人参与
# 25届秋招总结 #
406004次浏览 4071人参与
# 25届机械人为了秋招做了哪些准备? #
25984次浏览 363人参与
# 地方国企笔面经互助 #
6809次浏览 16人参与
# 阿里云管培生offer #
61449次浏览 1756人参与
# 机械求职避坑tips #
23273次浏览 249人参与
# 实习,投递多份简历没人回复怎么办 #
2438900次浏览 34731人参与
# 软件开发投递记录 #
1480551次浏览 23940人参与
# 虾皮求职进展汇总 #
88418次浏览 712人参与
# 我的实习求职记录 #
6129027次浏览 84002人参与
# 我在牛爱网找对象 #
74699次浏览 554人参与
# 机械人怎么评价今年的华为 #
157647次浏览 1350人参与
# 你觉得通信/硬件有必要实习吗? #
54705次浏览 695人参与
# 歌尔求职进展汇总 #
42861次浏览 294人参与
# 如果可以,你希望哪个公司来捞你 #
33220次浏览 193人参与
# 如果再来一次,你还会选择这个工作吗? #
114208次浏览 1131人参与
# 如何写一份好简历 #
618574次浏览 8723人参与
# 在职场上,你最讨厌什么样的同事 #
5943次浏览 90人参与
# 硬件兄弟们 甩出你的华为奖状 #
78392次浏览 628人参与
# 你觉得第一学历对求职有影响吗? #
17689次浏览 155人参与