美图
在原有的基础上增加对 cd -
的处理。
在 Unix 命令中,cd -
表示返回上一次所在的目录。我们可以使用一个变量来记录上一次所在的目录,在遇到 cd -
时将当前目录设置为上一次所在的目录。
以下是增加对 cd -
的处理后的代码:
4
cd /aa/bb/cc/dd/
cd ./ee/ff
cd gg/../hh
cd ./tt
cd -
函数输出:
/aa/bb/cc/dd/ee/ff/hh
def simplify_path(num: int, paths: List[str]) -> str:
stack = []
prev_dir = ''
for path in paths:
if path.startswith('/'):
stack = []
path = path[1:]
elif path == '-':
path = prev_dir
parts = path.split('/')
for part in parts:
if part == '..':
if stack:
stack.pop()
elif part != '.' and part:
stack.append(part)
prev_dir = '/' + '/'.join(stack)
return prev_dir
num = int(input())
paths = [input().strip() for _ in range(num)]
result = simplify_path(num, paths)
print(result)
在代码中,我们增加了一个 prev_dir
变量来记录上一次所在的目录。当遇到 cd -
命令时,将当前目录设置为上一次所在的目录。然后,对于其他情况,我们可以继续使用栈来存储目录,并记录当前目录的完整路径。最后,返回上一次所在目录的完整路径即可。