用 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 中删除最后一个元素
    • 否则,当 i 与 '.' 不同时,则
      • 在 s 末尾插入 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']

相关文章


有用资源