#2156. 简化路径

简化路径

当前没有测试数据。

问题描述

给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 ​绝对路径 ​(以 '/' 开头),请你将其转化为 ​更加简洁的规范路径​。

在 Unix 风格的文件系统中规则如下:

  • 一个点 '.' 表示当前目录本身。
  • 此外,两个点 '..' 表示将目录切换到上一级(指向父目录)。
  • 任意多个连续的斜杠(即,'//''///')都被视为单个斜杠 '/'
  • 任何其他格式的点(例如,'...''....')均被视为有效的文件/目录名称。

返回的 简化路径 必须遵循下述格式:

  • 始终以斜杠 '/' 开头。
  • 两个目录名之间必须只有一个斜杠 '/'
  • 最后一个目录名(如果存在)不能'/' 结尾。
  • 此外,路径仅包含从根目录到目标文件或目录的路径上的目录(即,不含 '.''..')。

返回简化后得到的 规范路径

格式

输入

一个字符串,即路径。

输出

一个字符串,即简化后的路径

样例

/home/
/home
/home//foo/
/home/foo
/home/user/Documents/../Pictures
/home/user/Pictures
/../
/
/.../a/../b/c/../d/./
/.../b/d

提示

样例说明

  1. 应删除尾随斜杠。
  2. 多个连续的斜杠被单个斜杠替换。
  3. 两个点 ".." 表示上一级目录(父目录)。
  4. 不可能从根目录上升一级目录。
  5. "..." 在这个问题中是一个合法的目录名。

数据范围

  • 1 <= path.length <= 3000
  • path 由英文字母,数字,'.''/''_' 组成。
  • path 是一个有效的 Unix 风格绝对路径。