leetcode做题总结,题目Simplify Path 71
2014-12-28 03:11
393 查看
题目是Simplify
Path
这道题思路很简单,就是按照“/”分开然后压栈,遇到特定字符进行处理即可
Update 2015、08、31:思路一样,下面是九章的代码,感觉逻辑能简单些
Path
这道题思路很简单,就是按照“/”分开然后压栈,遇到特定字符进行处理即可
public class Solution { public String simplifyPath(String path) { if(path.length()==0) return null; if(path.length()==1) return path; String[] pa = path.split("/"); Stack<String> s = new Stack<String>(); for(int i=0;i<pa.length;i++){ //cannot use pa[i]!=null here, because null is different with ""; if(!pa[i].equals("")){ if(s.size()==0){ if(pa[i].equals(".")||pa[i].equals("..")); else s.push(pa[i]); }else{ if(pa[i].equals(".")) continue; if(pa[i].equals("..")){ s.pop(); continue; } s.push(pa[i]); } } } String res=""; int len=s.size(); //when using collection's length in for, make sure the length will NOT change! for(int i=0;i<len;i++){ res = "/"+s.pop() + res; } if(res.length()==0) return "/"; return res; } }
Update 2015、08、31:思路一样,下面是九章的代码,感觉逻辑能简单些
public class Solution { /** * @param path the original path * @return the simplified path */ public String simplifyPath(String path) { // Write your code here String result = "/"; String[] stubs = path.split("/+"); ArrayList<String> paths = new ArrayList<String>(); for (String s : stubs){ if(s.equals("..")){ if(paths.size() > 0){ paths.remove(paths.size() - 1); } } else if (!s.equals(".") && !s.equals("")){ paths.add(s); } } for (String s : paths){ result += s + "/"; } if (result.length() > 1) result = result.substring(0, result.length() - 1); return result; } }
相关文章推荐
- Leetcode中的回溯法题目总结:八皇后问题; unique path问题;subsets问题
- leetcode做题总结,题目Set Matrix Zeroes 2012/04/06
- leetcode做题总结,题目Longest Valid Parentheses 2012/02/29
- leetcode做题总结,题目Search Insert Position 2012/03/03
- leetcode做题总结,题目Copy List with Random Pointer 2013/10/03
- leetcode做题总结,题目Remove Duplicates from Sorted ListI/II 2012/04/22
- leetcode做题总结,题目Validate Binary Search Tree 2012/08/31
- leetcode做题总结,题目Add Two Numbers /Add Binary 2011/11/01&2012/04/02
- leetcode做题总结,题目Best Time to Buy and Sell Stock 2012/10/30
- leetcode做题总结,题目Longest Consecutive Sequence 2013/02/13
- leetcode做题总结,题目Plus One 2012/04/02
- leetcode做题总结,题目Rotate List 2012/03/27
- leetcode做题总结,题目Binary Tree Inorder Traversal 2012/08/27
- leetcode做题总结,题目First Missing Positive 2012/03/08
- leetcode做题总结,题目Integer to Roman 2012/01/15
- Leetcode中的回溯法题目总结:八皇后问题; unique path问题;subsets问题
- leetcode做题总结,题目Merge k Sorted Lists 2012/02/13
- leetcode做题总结,题目Generate Parentheses 2012/02/12
- leetcode做题总结,题目Search a 2D MatrixI/II 2012/04/06
- leetcode做题总结,题目Spiral Matrix I/II 2012/03/24