笔试题
来源:互联网 发布:淘宝i7 7700k那么便宜 编辑:程序博客网 时间:2024/06/05 18:48
拼多多校招一个题目,自己的一点见解,只在本机上运行过。
题目如下:
tree命令将一个目录结构直观地显示出来,现在给你一个目录结构,请你按tree命令来输出。
输入描述:
第一行包含一个整数,表示需要你输出的树有N个节点。节点的编号从0到N-1的整数。编号为0的节点是树节点。接下来有N行,第i行包含一个字符串s,其父节点编号是p。保证字符串的正确性以及长度。
输出描述:
给出树的tree命令形式输出,要求同一个目录下要按照字母来先后排序。
import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Scanner;public class niuke { public static void main(String[] args){ Scanner s = new Scanner(System.in); while(s.hasNext()){ int count = s.nextInt(); String[] strName = new String[count]; int[] parNode = new int[count]; for(int i=0;i<count;i++){ strName[i] = s.next(); parNode[i] = s.nextInt(); } Dept(strName,parNode,0); } } private static void Dept(String[] strName, int[] parNode, int root) { System.out.println(strName[root]); Map<String, Integer> map = new HashMap<String, Integer>(); for(int i=0;i<strName.length;i++){ if(parNode[i] == root){ map.put(strName[i], i); } } List<Map.Entry<String, Integer>> infoIds = new ArrayList<Map.Entry<String, Integer>>(map.entrySet()); Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() { public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { return (o1.getKey()).toString().compareTo(o2.getKey()); } }); for(Map.Entry<String, Integer> m : infoIds){ //System.out.println(m.getKey()+":"+ m.getValue()); Dept(strName, parNode, m.getValue()); }; return; }}
第一个数组String strName[]定义为N个文件的文件名
第二个数组int[] parNode定义为N个文件的父目录的位置
方法Dept(String[] strName, int[] parNode, int root)用来按树打印
注意要重写排序方法,Map中存放的是子文件的名字以及这个子文件对应N个文件的位置,方便下一次递归调用时找到这个目录的子目录。
阅读全文
0 0
- 笔试题
- 笔试题
- 笔试题
- 笔试题
- 笔试题
- 笔试题
- 笔试题
- 笔试题
- 笔试题
- 笔试题
- 笔试题
- 笔试题
- 笔试题
- 笔试题
- 笔试题
- 笔试题
- 笔试题
- 笔试题
- python题目要求:输出如下图片中的图形
- 继承,接口
- CentOS7安装Docker,运行Nginx镜像、Centos镜像
- 千里之行,始于足下
- 常用的maven命令如下
- 笔试题
- WOJ1087-数星星
- 输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数, 使其和等于 m
- linux查看分区或磁盘的block和inode的大小和软硬连接区别
- 设计一条简单的等待工作队列之软件模型设计与实现(三)
- python自动化脚本安装指定版本的python环境
- Spring事务管理——事务的传播行为
- .NET之三分钟学会玩C#委托
- 编程题之——KMP算法Java实现