题目描述
给你一串路径,譬如: 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。
输出描述
输出目录结构,每一个测试样例的输出紧跟一个空行。
输入样例
4
a\b\c
a\d\e
b\cst
d
0
输出样例
a
b
c
d
e
b
cst
d
思路
使用二维数组按顺序存储输入的路径,如果父目录与上一个父目录相同,则找到第一个不同的子目录输出,否则直接输出目录
代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
vector<string> v, vs;
vector< vector<string> > ve;
while(cin>>n){
string str;
if(n==0) return 0;
v.clear(); //存放初始的所有行
for(int i =