Python程序:查找解析后的Unix风格路径
假设我们有一个Unix路径,在一个字符串列表中,我们需要找到它的解析版本。众所周知,在Unix中,“..”表示上级目录,“.”表示停留在当前目录。这里的解析表示对这两个符号的评估,以便我们得到当前所在的最终目录。
所以,如果输入类似于path = ["usr", "..", "usr", ".", "local", "etc", "foo"],那么输出将是['usr', 'local', 'etc', 'foo'],因为该部分表示“/usr/../usr/./local/etc”,解析为“/usr/local/etc/foo”
为了解决这个问题,我们将遵循以下步骤:
- s := 一个新列表
- 对于path中的每个元素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']
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP