LeetCode_Simplify Path

Simplify Path

Given an absolute path for a file (Unix-style), simplify it. Or in other words, convert it to the canonical path. In a UNIX-style file system, a period . refers to the current directory. Furthermore, a double period .. moves the directory up a level. Note that the returned canonical path must always begin with a slash /, and there must be only a single slash / between two directory names. The last directory name (if it exists) must not end with a trailing /. Also, the canonical path must be the shortest string representing the absolute path.
(简化文件路径)

Example:



1. 堆栈

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution:
def simplifyPath(self, path: 'str') -> 'str':
dirs = [x for x in path.split('/') if x and x != '.']

results = []

for dir in dirs:
if dir == '..':
results.pop() if results else None
else:
results.append(dir)

return '/' + '/'.join(results)