leetcode做题总结,题目Simplify Path 71
来源:互联网 发布:重生网络女主播txt 编辑:程序博客网 时间:2024/05/18 13:25
题目是Simplify 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; }}
0 0
- leetcode做题总结,题目Simplify Path 71
- LeetCode算法题目:Simplify Path
- LeetCode 71 Simplify Path
- LeetCode(71) Simplify Path
- [leetcode 71] Simplify Path
- leetcode || 71、Simplify Path
- LeetCode(71) Simplify Path
- leetcode 71: Simplify Path
- 【leetcode】【71】Simplify Path
- leetcode 71 Simplify Path
- LeetCode 71 Simplify Path
- Leetcode 71 Simplify Path
- leetcode-71 simplify path
- LeetCode #71 Simplify Path
- leetcode -- Simplify Path -- 字符串处理的题目
- Leetcode NO.71 Simplify Path
- [leetcode-71]Simplify Path(C)
- LeetCode(71) Simplify Path
- proc文件系统探索 之 根目录下的文件[三]
- CentOS 防火墙设置
- leetcode做题总结,题目Longest Substring Without Repeating Characters
- GoogleCpp风格指南 5) 其他特性_part1
- 【Pattern Recognition and Machine Learning】p10-11 Mathematical notations
- leetcode做题总结,题目Simplify Path 71
- HDU - 1021ACM
- hdu2143
- Struts2 result type(结果类型)
- Struts2中从一个action内部跳转到另一个action,怎么配置xml
- 使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATIBLE解决办法
- 史上最快Android模拟器:Genymotion使用教程
- leetcode做题总结,题目Multiply Strings 43
- Android多渠道打包解决方案(兰贝壳儿)