假设我们有一个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']