用 Python 编写程序来查找已解析的 Unix 样式路径
pythonserver side programmingprogramming更新于 2026/1/8 17:16:17
假设我们有一个 Unix 路径,在字符串列表中,我们必须找到其已解析的版本。正如我们在 Unix 中所知,".."表示上一个目录,"."表示停留在当前目录。此处解析表示对两个符号进行评估,以便我们获得当前所在的最终目录。
因此,如果输入类似于 path = ["usr", "..", "usr", ".", "local", "etc", "foo"],则输出将是 ['usr', 'local', 'etc', 'foo'],因为该部分代表"/usr/../usr/./local/etc"解析为 "/usr/local/etc/foo"
为了解决这个问题,我们将遵循以下步骤 −
- s := a new list
- 对于路径中的每个元素 i,执行
- 如果 i 与 '..' 相同,则
- 如果 s 不为空,则
- 从 s 中删除最后一个元素
- 如果 s 不为空,则
- 否则,当 i 与 '.' 不同时,则
- 在 s 末尾插入 i
- 如果 i 与 '..' 相同,则
- 返回 s
让我们看看下面的实现以便更好地理解 −
示例
class Solution: def solve(self, path): s = [] for i in path: if i == '..': if len(s) >0: s.pop() elif i !='.': s.append(i) return s ob = Solution() print(ob.solve(["usr", "..", "usr", ".", "local", "etc", "foo"]))
输入
["usr", "..", "usr", ".", "local", "etc", "foo"]
输出
['usr', 'local', 'etc', 'foo']
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

