P4818.简化路径(非hot100)
Leetcode 71.简化路径-原题链接
题目描述
给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径(以 '/' 开头),请你将其转化为 更加简洁的规范路径。
在 Unix 风格的文件系统中,规则如下:
- 一个点
'.' 表示当前目录本身。
- 此外,两个点
'..' 表示将目录切换到上一级(指向父目录)。
- 任意多个连续的斜杠(即,
'//' 或 '///')都被视为单个斜杠 '/'。
- 任何其他格式的点(例如,
'...' 或 '....')均被视为有效的文件/目录名称。
返回的 简化路径 必须遵循下述格式:
- 始终以斜杠
'/' 开头。
- 两个目录名之间必须只有一个斜杠
'/'。
- 最后一个目录名(如果存在)不能以
'/' 结尾。
- 此外,路径仅包含从根目录到目标文件或目录的路径上的目录(即,不含
'.' 或 '..')。
返回简化后得到的 规范路径。
输入描述
输入一行,一个字符串 path,表示 Unix 风格的绝对路径。
输出描述
输出一行,表示化简后的规范路径。
样例1
输入:
/home/
输出:
/home
样例2
输入:
/home//foo/
输出:
/home/foo
样例3
输入:
/home/user/Documents/../Pictures
输出:
/home/user/Pictures
样例4
输入:
/../
输出:
/
样例5
输入:
/.../a/../b/c/../d/./
输出:
/.../b/d
数据范围
- 1≤∣path∣≤3000
- path 由英文字母、数字、"."、"/"、"" 组成
- path 保证是一个合法的 Unix 风格绝对路径