-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path71.SimplifyPath.py
27 lines (20 loc) · 1.15 KB
/
71.SimplifyPath.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
"""
71
Given a string path, which is an absolute path (starting with a slash '/') to a file or directory in a Unix-style file system, convert it to the simplified canonical path.
In a Unix-style file system, a period '.' refers to the current directory, a double period '..' refers to the directory up a level, and any multiple consecutive slashes (i.e. '//') are treated as a single slash '/'. For this problem, any other format of periods such as '...' are treated as file/directory names.
The canonical path should have the following format:
The path starts with a single slash '/'.
Any two directories are separated by a single slash '/'.
The path does not end with a trailing '/'.
The path only contains the directories on the path from the root directory to the target file or directory (i.e., no period '.' or double period '..')
"""
class Solution:
def simplifyPath(self, path):
dir_stack = []
path = path.split("/")
for elem in path:
if dir_stack and elem == "..":
dir_stack.pop()
elif elem not in [".", "", ".."]:
dir_stack.append(elem)
return "/" + "/".join(dir_stack)