Question
Given an absolute path for a file (Unix-style), simplify it.
For example,
path = "/home/"
, => “/home"
path = "/a/./b/../../c/"
, =>
“/c”`
Corner Cases:
- Did you consider the case where path =
"/../"
? In this case, you should return"/"
. - Another corner case is the path might contain multiple slashes
'/'
together, such as"/home//foo/"
. In this case, you should ignore redundant slashes and return"/home/foo"
.
Solution
class Solution:
def simplifyPath(self, path):
"""
:type path: str
:rtype: str
"""
if len(path) == 0:
return "/"
nodes = path.split('/')
res = list()
prefix = ''
if nodes[0] == '':
prefix = '/'
nodes[1:]
for node in nodes:
if node == '..':
if len(res) > 0:
res.pop()
elif node != '.' and node != '':
res.append(node)
return prefix + '/'.join(res)