上海交通大学パス印刷(javaの)

题目描述
给你一串路径,譬如: a\b\c a\d\e b\cst d\ 你把这些路径中蕴含的目录结构给画出来,子目录直接列在父目录下面,并比父目录向右缩一格,就像这样: a   b     c   d      e b   cst d 同一级的需要按字母顺序排列,不能乱。
输入描述:
    每个测试案例第一行为一个正整数n(n<=10)表示有n个路径,当n为0时,测试结束,接下来有n行,每行有一个字串表示一个路径,长度小于50。
输出描述:
输出目录结构,每一个测试样例的输出紧跟一个空行。
示例1
输入
复制
4
a\b\c
a\d\e
b\cst
d\
0
输出
复制
a
  b
    c
  d
    e
b
  cst
d
import java.util.*;
import java.io.*;
import java.text.* ;
//1.缩进就是2个空格
//2.排序意思是优先保证高的级别的顺序
//3.“每组样例后有一个空行”
public class Main
{
	static int n;
	static int m;
	static int[][] matrix;
	static int res = Integer.MAX_VALUE;
    public static void main(String[] args){
    	try {
	        BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
	        String str;
	        while((str=br.readLine()) != null) {
	        	int n = Integer.parseInt(str);
                if(n == 0) break;
	        	String[] strs = new String[n];
	        	for(int i = 0; i < n; i++) {
	        		strs[i] = br.readLine();
	        	}
	        	Arrays.parallelSort(strs);
	        	String[] parts1 = strs[0].split("\\\\");
	        	int len1 = parts1.length;
	        	for(int i = 0; i < len1; i++) {
	        		StringBuilder s = new StringBuilder();
	        		for(int j = 0; j < i; j++)
	        			s.append("  ");
	        		s.append(parts1[i]);
	        		System.out.println(s);
	        	}
	        	for(int k = 1; k < n; k++) {
	        		boolean mark = true;
	        		String[] parts2 = strs[k].split("\\\\");
	        		int len2 = parts2.length;
		        	for(int i = 0; i < len2; i++) {
		        		if(mark&&i<len2&&parts1[i].contentEquals(parts2[i])) {
		        			continue;
		        		}
		        		else mark = false;
		        		StringBuilder s = new StringBuilder();
		        		for(int j = 0; j < i; j++)
		        			s.append("  ");
		        		s.append(parts2[i]);
		        		System.out.println(s);
		        	}	        
	        		parts1 = Arrays.copyOf(parts2, len2);
	        	}
	        }
 	    } catch (IOException e) {
	        e.printStackTrace();
	    }
    }
}


公開された231元の記事 ウォン称賛22 ビュー10000 +

おすすめ

転載: blog.csdn.net/weixin_43306331/article/details/104215783