欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF158C.Cd and pwd commands
Cd and pwd commands
题目描述
Vasya 正在编写一个操作系统的 shell,需要实现与目录操作相关的命令。为此,他决定先实现两个命令:cd(切换当前目录)和 pwd(显示当前目录)。
在 Vasya 的操作系统中,目录结构采用传统的树状层次结构。只有一个根目录,用斜杠“/”表示。其它每一个目录都有一个名称,即由小写拉丁字母组成的非空字符串。每个目录(根目录除外)都有一个父目录,也就是包含该目录的目录。父目录用“..”表示。
cd 命令接受一个参数,该参数是文件系统中的路径。该命令会将当前目录切换到指定路径所指向的目录。路径由以斜杠分隔的目录名组成。目录名可以为“..”,表示返回到父目录。“..”可以在路径中的任意位置出现,也可以多次出现。如果路径以斜杠开头,则表示这是一个绝对路径,即从根目录开始切换。如果参数以目录名(或“..”)开头,则表示这是相对路径,即从当前目录开始切换。
pwd 命令应输出当前目录的绝对路径。该路径中不得包含“..”。
初始时,当前目录是根目录。所有在任意 cd 命令中出现过的目录都视为已存在。保证不会出现试图跳转到根目录的父目录的情况。
输入格式
输入的第一行包含一个整数 (),表示命令的数量。
接下来的 行每行包含一条命令。每条命令为 pwd 或 cd,cd 后跟一个以空格分隔的非空参数。
cd 命令的参数只包含小写拉丁字母、斜杠和点,两个斜杠不会连续出现,点只用于表示父目录,不会单独出现其它含义。cd 的参数不会以斜杠结尾,除非该参数仅为一个斜杠,表示根目录。参数长度为 到 个字符(含端点)。
文件系统中的不同目录可以同名。
输出格式
对于每个 pwd 命令,输出一行完整的当前目录绝对路径,以斜杠结尾。路径必须以斜杠开头,列出从根到当前文件夹的所有按嵌套顺序排列的目录名,以斜杠分隔。路径中不得包含点。
说明/提示
由 ChatGPT 5 翻译
样例
7
pwd
cd /home/vasya
pwd
cd ..
pwd
cd vasya/../petya
pwd
/
/home/vasya/
/home/
/home/petya/
4
cd /a/b
pwd
cd ../a/b
pwd
/a/b/
/a/a/b/
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |