用栈的思想来解决这个问题,遇到当前路径就跳过,遇到上一个路径,就删除上一个路径,剩下的情况直接入栈即可。
class Solution:
def simplifyPath(self, path: str) -> str:
stack = list()
dirs = path.split("/")
for dir in dirs:
if not dir or dir == ".":
continue
if dir == "..":
if stack:
stack.pop()
else:
stack.append(dir)
return '/' + '/'.join(stack)