1777:文件结构“图”

1777:文件结构“图”

  • 查看
  • 提交
  • 统计
  • 提问
总时间限制: 
1000ms
内存限制: 
65536kB
描述

在计算机上看到文件系统的结构通常很有用。Microsoft Windows上面的"explorer"程序就是这样的一个例子。但是在有图形界面之前,没有图形化的表示方法的,那时候最好的方式是把目录和文件的结构显示成一个"图"的样子,而且使用缩排的形式来表示目录的结构。比如:

ROOT
| dir1
| file1
| file2
| file3
| dir2
| dir3
| file1
file1
file2

这个图说明:ROOT目录包括三个子目录和两个文件。第一个子目录包含3个文件,第二个子目录是空的,第三个子目录包含一个文件。

输入
你的任务是写一个程序读取一些测试数据。每组测试数据表示一个计算机的文件结构。每组测试数据以'*'结尾,而所有合理的输入数据以'#'结尾。一组测试数据包括一些文件和目录的名字(虽然在输入中我们没有给出,但是我们总假设ROOT目录是最外层的目录)。在输入中,以']'表示一个目录的内容的结束。目录名字的第一个字母是'd',文件名字的第一个字母是'f'。文件名可能有扩展名也可能没有(比如fmyfile.dat和fmyfile)。文件和目录的名字中都不包括空格,长度都不超过30。一个目录下的子目录个数和文件个数之和不超过30。
输出
在显示一个目录中内容的时候,先显示其中的子目录(如果有的话),然后再显示文件(如果有的话)。文件要求按照名字的字母表的顺序显示(目录不用按照名字的字母表顺序显示,只需要按照目录出现的先后显示)。对每一组测试数据,我们要先输出"DATA SET x:",这里x是测试数据的编号(从1开始)。在两组测试数据之间要输出一个空行来隔开。

你需要注意的是,我们使用一个'|'和5个空格来表示出缩排的层次。
样例输入
file1
file2
dir3
dir2
file1
file2
]
]
file4
dir1
]
file3
*
file2
file1
*
#
样例输出
DATA SET 1:
ROOT
|     dir3
|     |     dir2
|     |     file1
|     |     file2
|     dir1
file1
file2
file3
file4DATA SET 2:
ROOT
file1
file2
提示
一个目录和它的子目录处于不同的层次
一个目录和它的里面的文件处于同一层次
来源
翻译自 Pacific Northwest 1998 的试题

 

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstdio>
 4 using namespace std;
 5 string a;
 6 int cc;//输出深度
 7 int now=1;//记录当前*数量 
 8 int flag=0;
 9 void work()
10 {
11     string str[50];//储存该目录下的文件 
12     int l=0;
13     while(cin>>a)
14     {
15         if(flag==0&&a[0]!='#')
16         {
17             cout<<"DATA SET "<<now<<":"<<endl;
18             cout<<"ROOT"<<endl;
19             flag=1;
20         }
21         if(a[0]=='#')
22         return;
23         else if(a[0]=='*')
24         {
25             cc=0;
26             sort(str+0,str+l);
27             for(int i=0;i<l;i++)
28             {
29                 cout<<str[i]<<endl;
30             }
31             cout<<endl;
32             now++;
33             //cout<<"DATA SET "<<now<<":"<<endl;
34             //cout<<"ROOT"<<endl;
35             flag=0;
36             work();
37         }
38         else if(a[0]=='d')
39         {
40             //cc++;
41             //str[l]=a;
42             //l++;
43             cc++;
44             for(int i=1;i<=cc;i++)
45             {
46                 cout<<"|";
47                 for(int j=1;j<=5;j++)
48                 cout<<" ";
49             }
50             cout<<a<<endl;
51             work();
52         }
53         else if(a[0]=='f')
54         {
55             
56             str[l]=a;
57             l++;
58             continue;
59         }
60         else if(a[0]==']')
61         {
62             
63             sort(str+0,str+l);
64             for(int i=0;i<l;i++)
65             {    
66                 for(int k=1;k<=cc;k++)
67                 {    
68                     cout<<"|";
69                     for(int j=1;j<=5;j++)
70                     cout<<" ";
71                 }
72                 cout<<str[i]<<endl;
73             }
74             cc--;
75             return;
76         }
77     }
78 }
79 int main()
80 {
81     //freopen("r.txt","r",stdin);
82     //freopen("w.txt","w",stdout);
83     work();
84     return 0;
85 }

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/282588.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

thinkphp出现Call to undefined function Think\C() in ... online 313

造成这个问题的原因很多,在这里我只说明我自己遇到之后解决的办法 我将functions.php改成了function.php之后,修改了一些其他无关紧要的东西出现了这个问题,来回排查,各种尝试,最后,将function.php改回functions.php,可以正常运行

Oracle数据库IP访问限制(IP白名单黑名单)

1、编辑sqlnet.ora内容为&#xff1a;#允许访问的IP&#xff08;白名单&#xff09;TCP.INVITED_NODES(127.0.0.1,192.168.56.109,ip2,ip3,..,..本地IP..)若使用白名单&#xff0c;必须有本地IP&#xff0c;否则监听会起不来#不允许访问的IP&#xff08;黑名单&#xff09;#TCP…

WPF效果第一百九十九篇之Gamma曲线

前面效果中分享了模块对比;今天大周末那就再来分享一下最近实现的效果;基于YX^n公式根据不同的系数绘制Gamma曲线效果如下图:1、曲线的话,咱就用最简单的方式绘制一堆点:PathFigure pathFigure new PathFigure(){StartPoint new Point(0, count),};for(double x 0; x < 1…

图片序列化和反序列化成图片文件(代码)

// // ViewController.m // 图片序列化和反序列化 // // Created by Qlinchao on 17/3/14. // Copyright © 2017年 QLC. All rights reserved. //#import "ViewController.h"interface ViewController () property (weak, nonatomic) IBOutlet UIImageView …

windows 下 MyEclipse 逆向工程生成hiberate 对应配置文件以及 javaBean。

步骤1&#xff1a; 右边工具栏 -> 右击你的项目 -> 选中 MyEclipse -> Project Facets -> install Hibernate Facet -> 选择对应的版本&#xff08;以及一些你想要的配置&#xff09; 步骤2&#xff1a; 导航栏 -> window -》 show View -> Other 。 然…

php加解密

一 对称加密 1.mycyrpt的对称加密: /*** param $key //数据加密密钥 由自己定义,长度有限制 string* param $string //需要进行加解密的字符串 string* param $decrypt //加密还是解密 (最简单的,0代表加密,1代表解密)* return string*/ function encryptDecrypt($key, $st…

深入理解Spring Boot数据源与连接池原理

​ Create by ysterfoxmail.com 2018-8-2一&#xff1a;开始 在使用Spring Boot数据源之前&#xff0c;我们一般会导入相关依赖。其中数据源核心依赖就是spring‐boot‐starter‐jdbc 如下 <dependency><groupId>org.springframework.boot</groupId> …

Dapr 集成 Open Policy Agent 实现 接口的访问控制

大型项目中基本都包含有复杂的访问控制策略&#xff0c;特别是在一些多租户场景中&#xff0c;例如Kubernetes中就支持RBAC&#xff0c;ABAC等多种授权类型。Dapr 的 中间件 Open Policy Agent 将Rego/OPA策略应用到传入的Dapr HTTP请求中。Open Policy AgentOpen Policy Agent…

【Java】BigDecimal

一、前言 在使用Java&#xff0c;double 进行运算时&#xff0c;经常出现精度丢失的问题&#xff0c;总是在一个正确的结果左右偏0.0000**1。 特别在实际项目中&#xff0c;通过一个公式校验该值是否大于0&#xff0c;如果大于0我们会做一件事情&#xff0c;小于0我们又处理其他…

PHP获取当前页面URL

//获取页面url function curPageURL() {$pageURL http;if (!empty($_SERVER[HTTPS])) {$pageURL . "s";}$pageURL . "://";if ($_SERVER["SERVER_PORT"] ! "80") {$pageURL . $_SERVER["SERVER_NAME"].":".$_SER…

【招聘(大连)】北森云计算 .NET 专场招聘

为了更好的实现战略布局&#xff0c;逐步形成以三个产品研发中心&#xff08;北京、成都、大连&#xff09;为主&#xff0c;青岛和南京为辅的产品研发团队配置。北森云第三研发中心&#xff08;大连&#xff09;正式成立&#xff0c;目前大连的人选招聘正式开启&#xff0c;欢…

PHP强制下载文件

//有时我们不想让浏览器直接打开文件&#xff0c;如PDF文件&#xff0c;而是要直接下载文件&#xff0c;那么以下函数可以强制下载文件 //函数中使用了application/octet-stream头类型。 function downloads($filename,$dir./) {$filepath $dir.$filename;if (!file_exists($f…

F5基于证书认证的客户端登录

1.生成密钥RSA类型&#xff0c;密码&#xff1a;123456保存为Openssl格式2.上传客户机SecureCRT生成的公钥 Identity.pub到用户home目录下.ssh文件夹中cd .sshmv Identity.pub authorized_keys ##cat .ssh/id_rsa.pub >> ~/.ssh/authorized_keys3.更改F5 ssh配置文件tmsh…

C#多线程编程-必知必会

“发现问题的能力&#xff0c;运用技术解决问题的能力&#xff0c;是一个技术人成长的关键”图片故事&#xff1a;洋姜的花&#xff0c;拍摄于2022年7月23日&#xff0c;地点&#xff1a;北京奥林匹克森林公园 &#xff0c;摄影师&#xff1a;刘先生概要&#xff1a;使用C#发起…

理解Go Interface

理解Go Interface1 概述Go语言中的接口很特别&#xff0c;而且提供了难以置信的一系列灵活性和抽象性。接口是一个自定义类型&#xff0c;它是一组方法的集合&#xff0c;要有方法为接口类型就被认为是该接口。从定义上来看&#xff0c;接口有两个特点:接口本质是一种自定义类型…

『中级篇』Dockerfile详解(17)

一般的&#xff0c;Dockerfile 分为四部分&#xff1a;基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。 ####官网学习 https://docs.docker.com/engine/reference/builder/#usage ####FROM 必须为第一个命令&#xff0c;指定基础镜像 FROM <image> FROM &…

洛谷 1165日志分析

题目描述 M 海运公司最近要对旗下仓库的货物进出情况进行统计。目前他们所拥有的唯一记录就是一个记录集装箱进出情况的日志。该日志记录了两类操作&#xff1a;第一类操作为集装箱入库操作&#xff0c;以及该次入库的集装箱重量&#xff1b;第二类操作为集装箱的出库操作。这些…

KestrelServer详解[1]:注册监听终结点(Endpoint)

具有跨平台能力的KestrelServer是最重要的服务器类型。针对KestrelServer的设置均体现在KestrelServerOptions配置选项上&#xff0c;注册的终结点是它承载的最重要的配置选项。这里所谓的终结点&#xff08;Endpoint&#xff09;与“路由”介绍的终结点不是一回事&#xff0c;…

php截取字符串,带中文,多余的省略号代替

function subtext($text, $length) {if(mb_strlen($text, utf8) > $length) {return mb_substr($text, 0, $length, utf8)....;} else {return $text;}}$str 我们是family happy family; echo subtext($str,5); //我们是fa...

数据库添加

<body><form action"herozhuce.php" method"post"> <div>账号<input type"text" name"account"/></div> <div>密码<input type"text" name"password"/></div> &…