这道题的本质是对路径按 "/" 进行分割后,模拟目录的进入与返回过程。适合使用 栈 来实现路径化简。
具体做法如下:
给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径(以 '/' 开头),请你将其转化为 更加简洁的规范路径。
在 Unix 风格的文件系统中,规则如下:
'.' 表示当前目录本身。'..' 表示将目录切换到上一级(指向父目录)。'//' 或 '///')都被视为单个斜杠 '/'。'...' 或 '....')均被视为有效的文件/目录名称。返回的 简化路径 必须遵循下述格式:
'/' 开头。'/'。'/' 结尾。'.' 或 '..')。返回简化后得到的 规范路径。
输入一行,一个字符串 path,表示 Unix 风格的绝对路径。
输出一行,表示化简后的规范路径。
输入:
/home/
输出:
/home
输入:
/home//foo/
输出:
/home/foo
输入:
/home/user/Documents/../Pictures
输出:
/home/user/Pictures
输入:
/../
输出:
/
输入:
/.../a/../b/c/../d/./
输出:
/.../b/d