71. Simplify Path
2016-03-11 05:30
295 查看
主要是用一个stack记录,如果碰到的是“..”,那么如果堆栈不为空,弹出堆栈里面的前一个
如果是“.”,那么什么都不做
bug记录
第30,31行是insert,不是append,因为stack是倒序的
如果是“.”,那么什么都不做
public String simplifyPath1(String path) { if(path == null || path.length() == 0) { return ""; } StringBuilder sb = new StringBuilder(); Stack<String> stack = new Stack<String>(); int i = 0; while(i < path.length()) { StringBuilder temp = new StringBuilder(); int index = i; while(i < path.length() && path.charAt(i) != '/') { temp.append(path.charAt(i)); i++; } if(index != i) { String str = temp.toString(); if(str.equals("..")) { if(!stack.isEmpty()) { stack.pop(); } } else if(!str.equals(".")) { stack.push(str); } } i++; } int size = stack.size(); for(int j = 0; j < size; j++) { sb.insert(0,stack.pop()); sb.insert(0,"/"); } return (sb.length() == 0)? "/":sb.toString(); }
bug记录
第30,31行是insert,不是append,因为stack是倒序的
相关文章推荐
- [C++] 回溯法生成数独
- Vaadin 7 和 extjs mvc 集成示例
- android开发练习:天气应用
- 移动端H5页面高清多屏适配方案
- retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
- mysql日期类型默认值'0000-00-00'容错处理
- Leetcode 38. Count and Say
- 关闭flash的p2p上传,节省网络带宽
- [RxJS] Combining Streams with CombineLatest
- Exceptional C++, 实现一个不区分大小写的字符串比较类
- IOS逆向【1】-SSH
- wifi强度数据采集器(android)
- Unity Diffuse Metal Shader Mod
- [RxJS] Getting Input Text with Map
- [RxJS] Refactoring Composable Streams in RxJS, switchMap()
- MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限 (二)
- MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限 (二)
- MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限
- MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限
- 使用nodejs爬取拉勾苏州和上海的.NET职位信息