首页 > 试题广场 >

简化目录路径

[编程题]简化目录路径
  • 热度指数:777 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个目录路径的字符串path,path由英文字母,数字,".","/" 或 "_"组成,表示指向某一个文件或者目录的绝对路径,但是有的路径会有复杂的表达,比如"/../"其实还是代表的根目录路径"/"请你将这个绝对路径转化为一个更加简洁的规范路径,转化规则如下:
1.将1个点"."表示当前目录本身,即"/a/b/./"=>表示的还是"/a/b"
2.将2个点".."表示将目前切换到上一级,即"/a/b/../"其实表示的是"/a"
3.其他数目的点或者点加上其他字符视为一个普通目录路径,比如"/.../a.."表示的是根目下有一个名字为"..."的目录文件,"..."的文件下面还有一个名字为"a.."的文件
4.任意多个连续的斜杠都被视为单个斜杠,即 "///"和"//"都被视为"/"

你返回的简化规范路径应该如下:
5.始终以斜杠 '/' 开头
6.两个目录名之间必须只有一个斜杠 '/'
7.最后一个目录名不能 '/' 结尾,根目录除外,根目录只有一个"/"
8.路径仅包含从根目录到目标文件或目录的路径上的目录,即除了"."和".."的东西应该简化,其余的普通字符应该保留下来,视为目录路径


数据范围:
示例1

输入

"/home/web/"

输出

"/home/web"
示例2

输入

"/home////web//"

输出

"/home/web"

说明

在简化规范路径中,多个连续的"/"替换为"/", 
示例3

输入

"/../"

输出

"/"

说明

"/"是根目录,是顶级目录,它的上级目录还是自己 
示例4

输入

"/home/web/./tang/../miao/"

输出

"/home/web/miao"

说明

"/home/web/./"表示的是"/home/web",因为"."表示当前目录,但是"/home/web/./tang/../"表示的还是"/home/web",因为".."表示父目录,"/home/web/tang"的父目录就是"/home/web" 
头像 姐姐的遮阳伞
发表于 2022-04-05 17:07:10
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param path string字符串 * 展开全文
头像 太阳hxy
发表于 2023-08-31 17:24:24
class Solution { public: string simplifyPath(string path) { string a,b; //如果路径的最后不是'/',则在路径字符串的最后添加上'/',这样才可以处理最后一个路径 if(p 展开全文
头像 牛客马MAXEY
发表于 2023-10-19 15:14:11
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param path string字符串 * @return string字符串 展开全文
头像 fred-coder
发表于 2022-02-23 10:15:17
栈,将 s 根据 "/" 分割, 遇到 "" 或 "." 不入栈, 遇到 ".." 且栈有值的情况下,栈顶出栈 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param path string字符串 # @return string字符串 # c 展开全文
头像 拼搏拼搏!!!
发表于 2022-03-14 09:31:00
简化目录路径: public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param path string字符串 * @return stri 展开全文
头像 牛客327297870号
发表于 2022-11-28 20:33:00
# class Solution: def simplifyPath(self , path: str) -> str: # write code here dirs = path.split('/') new_path = [] 展开全文
头像 dk131
发表于 2024-04-07 23:31:27
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param path string字符串 # @return string字符串 # class Solution: def simplifyPath(self , path: str) -& 展开全文