LeetCode 71 Simplify Path (栈)
来源:互联网 发布:linux 文件高级权限 编辑:程序博客网 时间:2024/05/16 10:08
Given an absolute path for a file (Unix-style), simplify it.
For example,
path = "/home/"
, => "/home"
path = "/a/./b/../../c/"
, => "/c"
当遇到"."时不动;
当遇到".."时栈顶弹出
当是其他的时候直接入栈
需要处理多个"/"相连的情况
由于这样处理后的结果是逆序的,再用个栈倒序下(此处也可用双端数据结构维护)
public class Solution { public String simplifyPath(String path) { int len = path.length(), i = 0; Stack<String> stk = new Stack<>(); String tmp = ""; while (i < len) { while (i < len && path.charAt(i) == '/') { i ++; } while (i < len && path.charAt(i) != '/') { tmp += path.charAt(i); i ++; } if (tmp != "") { if (tmp.compareTo(".") == 0) { i ++; tmp = ""; continue; } if (tmp.compareTo("..") != 0) { stk.add(tmp); } else if (!stk.isEmpty()){ stk.pop(); } } tmp = ""; } String ans = ""; Stack<String> helpStk = new Stack<>(); while (!stk.isEmpty()) { helpStk.add(stk.pop()); } while (!helpStk.isEmpty()) { ans += "/" + helpStk.pop(); } return ans == "" ? "/" : ans; }}
阅读全文
0 0
- 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 #71 Simplify Path
- leetcode---Simplify Path---栈
- Leetcode NO.71 Simplify Path
- [leetcode-71]Simplify Path(C)
- LeetCode(71) Simplify Path
- 【LeetCode】C# 71、Simplify Path
- java多态
- 电商图片降质--nginx解决方案
- 遗传算法的matlab实现
- 基于梯度上升算法的Logistic回归
- 机器学习---opencv实现简单的KNN算法
- LeetCode 71 Simplify Path (栈)
- 【剑指Offer】:矩阵覆盖
- JS简单实现自定义弹窗及程序中断,继续效果
- Mac常用终端命令
- python 库收藏
- 如何在table的每一行添加点击事件
- hdu2037 今年暑假不AC
- 网络安全揭秘
- 找出字符串中特定字符出现的次数的实现(分拣思路)