Saturday, July 12, 2014

[Leetcode] Simplify Path

Problem

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".

Algorithm

The path can be represented by a singly linked list. Between slashes, there are files or folders, "." or "..". If we see a file or folder, append it to the end of list. If we see a ".", do nothing. If we see a "..", remove the end node of the list. 

No comments:

Post a Comment