在Python中找到已解析的Unix样式路径的程序

假设我们有一个Unix路径,在字符串列表中,我们必须找到其解析版本。如我们在Unix中所知,“ ..”表示先前的目录,“。”表示先前的目录。表示停留在当前目录中。此处的解析表示对这两个符号的评估,以便获得当前所在的最终目录。

因此,如果输入类似于path = [“ usr”,“ ..”,“ usr”,“。”,“ local”,“ etc”,“ foo”],则输出将为['usr', 'local','etc','foo'],因为它代表“ /usr/../usr/./local/etc”,它解析为“ /usr/local/etc/foo”

让我们看下面的实现以更好地理解-

示例

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']
猜你喜欢