- Simplify Path
Simplify Path
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:
1. public class Solution {
2. public String simplifyPath(String path) {
3. Set
4. Deque
5. 6. for (String token : path.split("/")) {
7. if (token.equals("..") && !deque.isEmpty())
8. deque.pollLast();
9. 10. if (set.contains(token))
11. continue;
12. 13. deque.addLast(token);
14. }
15. 16. StringBuilder sb = new StringBuilder();
17. 18. while (!deque.isEmpty()) {
19. sb.append("/" + deque.pollFirst());
20. }
21. 22. return sb.length() == 0 ? "/" : sb.toString();
23. }
24. }
