class Solution:
def simplifyPath(self, path: str) -> str:
result = ''
tmp = ''
for i in path:
if i == '.':
if tmp == '/' or tmp == '/.':
tmp += i
else:
tmp = ''
elif i == '/':
if tmp == '/.':
result = result[:-2]
tmp = i
elif tmp == '/..':
result = result[:-3]
while result and result[-1] != '/':
result = result[:-1]
else:
if not result:
result = '/'
tmp = i
continue
elif tmp == '/':
continue
else:
tmp = i
else:
tmp = ''
result += i
if result[-1] == '.':
if result[-2] == '.':
if result[-3] == '/':
result = result[:-3]
while result and result[-1] != '/':
result = result[:-1]
else:
if not result:
result = '/'
elif result[-2] == '/':
result = result[:-1]
if len(result) > 1 and result[-1] == '/':
result = result[:-1]
return result