当前位置: 首页 > news >正文

传智杯 3-初赛:终端

题目描述:

        有一天您厌烦了电脑上又丑又没用的终端,打算自己实现一个 Terminal。具体来说,它需要支持如下命令:

1. `touch filename`:如果名为 `filename` 的文件不存在,就创建一个这样的文件,如果已经存在同名文件的话则不进行任何操作。

2. `rm name`:删除名为 `name` 的文件。如果不存在这样的文件,就不进行任何操作。

3. `ls`:按创建时间为顺序,显示当前已经存在的未被删除的所有文件。

4. `rename xxx yyy`:将名为`xxx`的文件名字改为 `yyy` 。如果不存在这样的文件,或者已经存在文件名为 `yyy` 的文件,则不做任何操作。

        这里所有涉及的文件名都仅由大写或者小写的英文字母构成,且文件名区分大小写。

输入格式:

        第一行一个整数 n ,表示总共要执行的操作数。接下来 n 行,每行一个字符串,表示一条命令。

输出格式:

        对于每个 `ls` 命令,请输出若干行,每行一个字符串,表示一个文件,如果当前并没有任何文件,则什么都不输出。请注意本题时限为 3s,输入输出规模较大,请注意常数因素对耗时的影响,我们不会给使用 Java 和 Python 的选手增加额外的运行时间。

样例输入:

6
touch yyh
touch yyhtql
rename yyh yyhnb
touch qwq
rename qwq qaq
ls

样例输出:

yyhnb
yyhtql
qaq

解题思路:

        设置一个用于查找名字为name的文件的函数,当文件存在时返回文件所在的位置,不存在的时候返回-1。利用cin函数进行输入,其不能收到空格信息,可以利用空格进行分析指令时什么类型,根据每个类型的指令,做出对应的操作。

代码:

#include<iostream>
#include<string>
using namespace std;int number = 0;   //记录文件的个数//文件结构体
struct file
{string name;   //名字int sign;   //存在为1,不存在为0
};//查找文件name
int is_essence(string name,file a[])
{for (int i = 0;i < number;i++){if (a[i].name == name && a[i].sign == 1)   //找到{return i;}}return -1;   //不存在文件name
}signed main()
{file arr[1000];   //创建文件数组//输入int n;   //指令个数cin >> n;for (int i = 0;i < n;i++){string zhiling;cin >> zhiling;//情况1if (zhiling == "touch")   //创建文件{string name;cin >> name;if (is_essence(name, arr) == -1)    //不存在文件名为name的文件{arr[number].name = name;arr[number].sign = 1;number++;}}//情况2else if (zhiling == "rename")  //重命名{string bename, afname;cin >> bename >> afname;if (is_essence(afname, arr) != -1)     //存在yyy的文件{continue;   //不操作}if (is_essence(bename, arr) != -1)     //存在xxx的文件{arr[is_essence(bename, arr)].name = afname;   //重命名}}else if (zhiling == "rm")   //删除{string name;cin >> name;if (is_essence(name, arr) != -1)    //存在xxx的文件{arr[is_essence(name, arr)].sign= 0;   //删除}}else   //输出{for (int i = 0;i < number;i++){if (arr[i].sign == 1)   //存在{cout << arr[i].name << endl;}}}}system("pause");return 0;
}

相关文章:

传智杯 3-初赛:终端

题目描述&#xff1a; 有一天您厌烦了电脑上又丑又没用的终端&#xff0c;打算自己实现一个 Terminal。具体来说&#xff0c;它需要支持如下命令: 1. touch filename&#xff1a;如果名为 filename 的文件不存在&#xff0c;就创建一个这样的文件&#xff0c;如果已经存在同名…...

大数据新视界 -- Hive 数据分区:精细化管理的艺术与实践(上)(7/ 30)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...

【中间件】Redis

一、什么是Redis Redis是一个开源&#xff08;BSD许可&#xff09;&#xff0c;内存存储的数据结构服务器&#xff0c;可用作数据库&#xff0c;高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合&#xff0c;位图&#xff0c;hyperloglogs等数据类型。内置…...

RTSP播放器EasyPlayer.js播放器分辨率高的视频在设置container的宽高较小时,会出现锯齿状的画面效果

流媒体播放器的核心技术及发展趋势展现了其在未来数字生活中的无限潜力。随着技术的不断进步和市场的持续发展&#xff0c;流媒体播放器将在内容创新、用户体验优化以及跨平台互通等方面取得新的突破。对于从业者而言&#xff0c;把握这些趋势并积极应对挑战将是实现成功的关键…...

Java爬虫:获取商品详情的实践之旅

在当今这个信息爆炸的时代&#xff0c;数据的价值日益凸显。对于电商行业来说&#xff0c;商品详情的获取尤为重要&#xff0c;它不仅关系到产品的销售&#xff0c;还直接影响到用户体验。传统的人工获取方式耗时耗力&#xff0c;而自动化的爬虫技术则提供了一种高效解决方案。…...

行业分析---2024年小鹏汽车AI Day及三季度财报

1 背景 在之前的博客中&#xff0c;笔者撰写了多篇行业类分析的文章&#xff08;科技新能源&#xff09;&#xff1a; 《行业分析---我眼中的Apple Inc.》 《行业分析---马斯克的Tesla》 《行业分析---造车新势力之蔚来汽车》 《行业分析---造车新势力之小鹏汽车》 《行业分析-…...

写时复制,读时加载

实现写时复制&#xff0c;读时加载&#xff0c;原理为&#xff0c;申请内存时&#xff0c;只给一段线性地址空间&#xff0c;并不分配物理内存&#xff0c;当cpu读、写该内存时&#xff0c;发生缺页中&#xff0c;或者写错误&#xff0c;中断处理程序根据前面设置的内容&#x…...

Python和R基因组及蛋白质组学和代谢组学

&#x1f335;Python片段 1. 数据处理与清理 基因组病理学的数据通常非常庞大&#xff0c;且可能包括 DNA 或 RNA 测序结果、基因表达数据等。Python 提供了高效的数据处理工具。 工具和库 Pandas: 用于加载、清理和操作数据。Numpy: 用于高效的数值计算。Dask: 用于大规模数…...

selenium环境搭建详细过程

一、准备工作 在开始搭建 Selenium 环境之前&#xff0c;确保具备以下条件&#xff1a; 1.稳定的网络连接&#xff1a; 以便能够下载所需的软件和驱动程序。 2.操作系统基础&#xff1a; 对您的操作系统&#xff08;如 Windows、Mac 或 Linux&#xff09;有基本的了解和操…...

Linux知识 - VIM

VI于VIM linux系统里边内置了一个编辑器就叫做vi&#xff08;visual editor&#xff09;&#xff0c;但vi的功能非常有限&#xff0c;所以一般Linux的使用人员会选择一个比vi更强大的编辑器vim Vim的三种工作模式 输入模式 在正常模式中按下别字母键&#xff0c;会进入插入模式…...

【数据结构】链表重难点突破

目录 一、链表的概念 二、链表的实现 2.1 链表的构建 2.2 从链表头部添加元素 2.3 从链表尾部添加元素 2.4 链表任意位置添加元素 2.5 常规方法实现 2.6 获取指定位置的元素 2.7 获取指定元素的位置 2.8 修改链表中某一节点 2.9 删除链表的头结点 2.10 删除链表的尾…...

大宗商品行业区块链应用

应用场景 区块链技术具有透明性、去中心化、不可篡改等特点&#xff0c;因此可以在大宗商品定价方面得到应用。通过区块链技术&#xff0c;相关交易的各方可以在无需依赖中心化第三方的情况下&#xff0c;实时、准确地获取定价信息。这种技术的应用能够提高效率、降低成本、提…...

Varjo:垂直起降机混合现实培训解决方案

混合电动垂直起降机&#xff08;VTOL&#xff09;作为一种新型的航空运输机具有超越传统汽车的安全性、与飞机相当的速度以及无与伦比的灵活起降功能。电动垂直起降机能够在建筑顶部、直升机场或是没有跑道的地区起飞或降落&#xff0c;且排放要远远低于由航空汽油驱动的传统飞…...

sqlite-vec一个SQLite3高效向量搜索扩展--JDBC环境使用

最近要用SQLite3&#xff0c;之前放出来了SQLiteUtile工具&#xff0c;方便操作。今天发现AIGC方面&#xff0c;RAG知识库需要使用向量数据库&#xff0c;来存储知识信息。一般呢都是用mysql&#xff0c;但无奈的是mysql就是不让用。突然又发现SQLite3有向量库扩展组件&#xf…...

10 基于深度学习的目标检测

首次完成时间&#xff1a;2024 年 11月 20 日 1. 使用OpenCV的dnn模块实现图像分类。 1&#xff09;程序代码&#xff1a; import numpy as np import cv2# 解析标签文件 row open("model1/synset_words.txt").read().strip().split("\n") class_label …...

leetcode top100中的30道递归和贪心

21到30题&#xff0c;递归和贪心...

非常简单实用的前后端分离项目-仓库管理系统(Springboot+Vue)part 2

七、创建前端项目 你下载了nodejs吗&#xff1f;从cn官网下载&#xff1a;http://nodejs.cn/download/&#xff0c;或者从一个国外org网站下载&#xff0c;选择自己想要的版本https://nodejs.org/download/release/&#xff0c;双击下载好的安装文件&#xff0c;选择安装路径安…...

shell脚本(完)—脚本互调重定向的学习

免责声明 学习视频来自B 站up主泷羽sec&#xff0c;如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识&#xff0c;以下代码、网站只涉及学习内容&#xff0c;其他的都与本人无关&#xff0c;切莫逾越法律红线&#xff0c;否则后果自负。 脚本互调 在Shell脚本中&a…...

ant-design-vue中table某一列进行合并

ant-design-vue中table某一列进行合并 1、在colums中配置自定义渲染 {title: 区域,dataIndex: cityName,key: cityName,align: center,width: 120,customCell: (record, rowIndex, column) > {return {rowSpan: record.rowSpan}} },2、处理请求来的数据 tableData.dataSo…...

基于Springboot+Vue社区养老服务管理系统(源码+lw+讲解部署+PPT)

前言 详细视频演示 论文参考 系统介绍 系统概述 核心功能 用户角色与功能 具体实现截图 1. 服务信息查看功能 主要代码实现 截图&#xff1a; 2. 服务申请功能 主要代码实现 截图&#xff1a; 3. 公告信息查看功能 主要代码实现 截图&#xff1a; 4. 服务信息…...

大数据调度组件之Apache DolphinScheduler

Apache DolphinScheduler 是一个分布式易扩展的可视化 DAG 工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系&#xff0c;使调度系统在数据处理流程中开箱即用。 主要特性 易于部署&#xff0c;提供四种部署方式&#xff0c;包括Standalone、Cluster、Docker和…...

介绍一下strlwr(arr);(c基础)

hi , I am 36 适合对象c语言初学者 strlwr(arr)&#xff1b;函数是把arr数组变为小写字母 格式 #include<string.h> strlwr(arr); 返回值为arr 链接分享一下arr的意义(c基础)(必看)(牢记)-CSDN博客 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #incl…...

meterpreter常用命令 上

Meterpreter 是 Metasploit 框架中的一个高级 Payload&#xff0c;广泛用于渗透测试和攻击模拟。以下是一些常用的 Meterpreter 命令&#xff1a; 1. 基本命令 sysinfo 显示目标系统的基本信息&#xff08;操作系统、架构等&#xff09;。 getuid 获取当前用户的身份信息。…...

【kubernetes】kubernetes各组件的调用关系

目录 1. 说明2. Kubernetes组件概述2.1 控制平面组件2.2 节点组件 3. Kubernetes组件调用关系4. 示例说明 1. 说明 1.Kubernetes是一个开源的容器编排工具&#xff0c;其各个组件之间存在着复杂的调用关系&#xff0c;共同构建起一个完整的容器编排系统。2.Kubernetes集群主要…...

Java-08 深入浅出 MyBatis - 多对多模型 SqlMapConfig 与 Mapper 详细讲解测试

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 大数据篇正在更新&#xff01;https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了&#xff1a; MyBatis&#xff…...

Vue.js修饰符

Vue.js 是一个渐进式JavaScript框架&#xff0c;用于构建用户界面。在Vue.js中&#xff0c;修饰符&#xff08;Modifiers&#xff09;是一种增强指令行为的工具&#xff0c;它们可以改变指令的默认行为。本文将详细讲解Vue.js中的修饰符&#xff0c;并提供实际示例&#xff0c;…...

【数据分享】2024年我国省市县三级的住宿服务设施数量(8类住宿设施/Excel/Shp格式)

宾馆酒店、旅馆招待所等住宿服务设施的配置情况是一个城市公共基础设施完善程度的重要体现&#xff0c;一个城市住宿服务设施种类越丰富&#xff0c;数量越多&#xff0c;通常能表示这个城市的公共服务水平越高&#xff01; 本次我们为大家带来的是我国各省份、各地级市、各区…...

【含文档】基于.NET的医院医保管理系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 主要技术:mysql,vue 2.视频演示地址 3.功能 系统定义了两个角色&#xff1a;管理员和用户。 管理员进入主界面&…...

c++源码阅读__smart_ptr__正文阅读

文章目录 简介源码解析1. 引用计数的实现方式2. deleter静态方法的赋值时间节点3.make_smart的实现方式 与 好处4. 几种构造函数4.1 空构造函数4.2 接收指针的构造函数4.3 接收指针和删除方法的构造函数 , 以及auto进行模板lambda的编写4.4 拷贝构造函数4.5 赋值运算符 5. rele…...

图形化界面MySQL(MySQL)(超级详细)

1.官网地址 MySQL :: Download MySQL Workbench 1.1在Linux直接点击NO thanks..... 下载完后是这个页面 1.2任何远端登录&#xff0c;再把jj数据库给授权 1.3建立新用户 进行连接 点击这个就运行了 只执行show tables&#xff1b;要先选中 圆圈处支持自己输入 点击这个就执…...