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".
class Solution:
     def simplifyPath(self, path):
         """
         :type path: str
         :rtype: str
         """
         
         tokens = path.split('/')
         stack = list()
         for token in tokens:
             if token != '':
                 stack.append(token)
         
         res = ''
         back = 0
         while stack:
             top = stack.pop()
             if top == '.':
                 continue
             elif top == '..':
                 back = back + 1
             else:
                 if back == 0:
                     res = '/'+top+res
                 else:
                     back = back - 1
                     
         if res == '':
             return '/'
         return res 
                         

class Solution:
     def simplifyPath(self, path):
         """
         :type path: str
         :rtype: str
         """
         
         tokens = path.split('/')
         stack = list()
         for token in tokens:
             if token != '':
                 stack.append(token)
         
         res = ''
         back = 0
         while stack:
             top = stack.pop()
             if top == '.':
                 continue
             elif top == '..':
                 back = back + 1
             else:
                 if back == 0:
                     res = '/'+top+res
                 else:
                     back = back - 1
                     
         if res == '':
             return '/'
         return res 
                         
