关注
楼主第二题能用你的样例测一下这个代码么,我用你的代码跑了一下,和我的输出是相同的,不知道错了哪个
样例。
import java.util.*; class Node {
String name; int parent; ArrayList<Node> children; Node() { this.children = new ArrayList<>(); }
} public class Mainb { public static void dfs(Node nodes, String s) { if (nodes.children.size() == 0) return; for (int i = 0; i < nodes.children.size(); i++) {
Node node = nodes.children.get(i); String s1; if (i != nodes.children.size() - 1)
s1 = s + "|"; else s1 = s + "`"; System.out.println(s1 + "-- " + node.name); if (node.children.size() > 0 && i != nodes.children.size() - 1) {
String ss = ""; if (s == "")
ss = s + " |"; else ss = s + "| "; dfs(node, ss); } else if (node.children.size() > 0 && i == nodes.children.size() - 1) {
String ss = ""; if (s == "")
ss = s + " "; else ss = s + " "; dfs(node, ss); }
}
} public static void main(String [] args) {
Scanner sc = new Scanner(System.in); int n = sc.nextInt(); Node [] nodes = new Node[n]; Node root; HashMap<Integer, Node> map = new HashMap<>(); for (int i = 0; i < n; i++) {
nodes[i] = new Node(); nodes[i].name = sc.next(); nodes[i].parent = sc.nextInt(); if (i == 0)
root = nodes[i]; map.put(i, nodes[i]); } for (int i = 1; i < n; i++) {
Node parent = map.get(nodes[i].parent); if (parent != null)
parent.children.add(nodes[i]); } for (int i = 0; i < n; i++) {
Collections.sort(nodes[i].children,new Comp()); }
System.out.println(nodes[0].name); String s = ""; dfs(nodes[0], s); }
} class Comp implements Comparator { public int compare(Object s11, Object s22) {
Node node1 = (Node) s11; Node node2 = (Node) s22; String s1 = node1.name; String s2 = node2.name; int n1 = s1.length(); int n2 = s2.length(); int min = Math.min(n1, n2); for (int i = 0; i < min; i++) { char c1 = s1.charAt(i); char c2 = s2.charAt(i); if (c1 != c2) {
c1 = Character.toUpperCase(c1); c2 = Character.toUpperCase(c2); if (c1 != c2) {
c1 = Character.toLowerCase(c1); c2 = Character.toLowerCase(c2); if (c1 != c2) { // No overflow because of numeric promotion return c1 - c2; }
}
}
} return n1 - n2; }
} /* 10 my-app -1 src 0 main 1 java 2 resources 2 webapp 2 test 1 java 6 resources 6 pom.xml 0 my-app |-- pom.xml `-- src |-- main | |-- java | |-- resources | `-- webapp `-- test |-- java `-- resources */
查看原帖
点赞 2
相关推荐
05-29 13:37
北京科技大学 算法工程师 认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的
开发你这个也没有项目啊
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 第一份工作应该选高薪还是热爱? #
66678次浏览 592人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
92042次浏览 678人参与
# 秋招签约后的心态变化 #
82486次浏览 813人参与
# 听劝,这个公司值得去吗 #
486027次浏览 1700人参与
# 你觉得早上几点上班合适? #
72316次浏览 303人参与
# 学历贬值真的很严重吗? #
24418次浏览 173人参与
# 机械人与华为的爱恨情仇 #
120137次浏览 957人参与
# 一人推荐一个值得去的通信/硬件公司 #
186459次浏览 1859人参与
# 打工人的工作餐日常 #
53166次浏览 415人参与
# 哪些公司真双非友好? #
15818次浏览 82人参与
# 26届的你们有几段实习? #
43848次浏览 486人参与
# 月薪多少能在一线城市生存 #
27767次浏览 303人参与
# 双非能在秋招上岸吗? #
221704次浏览 1172人参与
# 你以为的实习VS真实的实习 #
29567次浏览 272人参与
# 今年秋招哪家公司给的薪资最良心? #
252841次浏览 1417人参与
# 你后悔自己读研吗? #
20473次浏览 240人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
117890次浏览 812人参与
# 追觅科技求职进展汇总 #
18221次浏览 120人参与
# 实习想申请秋招offer,能不能argue薪资 #
149876次浏览 932人参与
# 如何KTV领导 #
62765次浏览 472人参与