全新题目
【编程题目 |100分】简易Linux路径解析【华为OD机试 2024 Q4考试题 C卷】
时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++262144K,其他语言524288K
64bit IO Format:%lld
语言限定:
C(clang11), C++(clang++11), Pascal(fpc 3.0.2), Java(javac 1.8), Python2(2.7.3),
PHP(7.4.7), C#(mcs5.4), ObjC(gcc 5.4), Python3(3.9), JavaScript Node(12.18.2), JavaScript V8(6.0.0),
Sqlite(3.7.9), R(4.0.3), Go(1.14.4), Ruby(2.7.1), Swift(5.3), matlab(Octave 5.2), Pypy2(pypy2.7.13),
Pypy3(pypy3.6.1), Rust(1.44), Scala(2.11.12), Kotlin(1.4.10), Groovy(3.0.6), TypeScript(4.1.2), Mysql(8.0)
本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,
编码后请点击”保存并调试“按钮进行代码提交。
■ 题目描述
【简易Linux路径解析】
某简易的 linux 目录系统 cd 命令(change directory)功能如下:
cd:进入 home 目录 /home/user
cd -:进入上一次停留的目录(连续两个以上 cd – 会在两个目录之间来回跳转,而不是回到更早之前的目录)
cd <绝对路径>:以 / 开头的为绝对路径
cd <相对路径>:不以 / 开头的为相对路径
现给定一批 cd 命令,命令格式及相关假设如下:
单独的 / 表示根目录,且为系统默认的初始目录
//a 表示目录 /a,即这种格式中的多个 / 等价于一个 /
特殊目录 . ,表示当前层次目录,例如 /a/. 表示目录 /a
特殊目录 .. ,表示当前层次目录的父目录(根目录的父目录仍为根),例如 /a/.. 表示目录 /
假设不会出现第一个命令为 cd – 的情况
请计算所有命令执行结束后的最终目录,并格式化输出其绝对路径:
必须以 / 开头,不以 / 结尾(除根目录外)
不允许特殊目录 .,..,不允许连续的 /,需转化为所表示的目录
代码实现
Golang
package main import ( "fmt" "sort" "strconv" )
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看C++
#include <bits/stdc++.h> using namespace std;
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看C
#include <stdio.h> using namespace std;
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看JAVA
package com.huawei.uapcc.tm.decoder; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in);
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看Python
from typing import List class Solution:
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看JavaScript
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, });
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看