题目

71. Simplify Path

Given an absolute path for a file (Unix-style), simplify it. Or in other words, convert it to the canonical path.

In a UNIX-style file system, a period . refers to the current directory. Furthermore, a double period … moves the directory up a level.

Note that the returned canonical path must always begin with a slash /, and there must be only a single slash / between two directory names. The last directory name (if it exists) must not end with a trailing /. Also, the canonical path must be the shortest string representing the absolute path.

Example 1:

Input: "/home/"
Output: "/home"
Explanation: Note that there is no trailing slash after the last directory name.

Example 2:

Input: "/../"
Output: "/"
Explanation: Going one level up from the root directory is a no-op, as the root level is the highest level you can go.

Example 3:

Input: "/home//foo/"
Output: "/home/foo"
Explanation: In the canonical path, multiple consecutive slashes are replaced by a single one.

Example 4:

Input: "/a/./b/../../c/"
Output: "/c"

Example 5:

Input: "/a/../../b/../c//.//"
Output: "/c"

Example 6:

Input: "/a//bc/d//././/.."
Output: "/a/b/c"

Stack解法

这里用到Stack的解法,Duque在这里是双向队列。如果是"…",则从Stack移除上一个,如果不是是空并且不是".", 则加入到Stack中。

class Solution {public String simplifyPath(String path) {String slash = "/";Deque<String> stack = new LinkedList<>();for (String s: path.split(slash)) {if (s.equals("..")) stack.poll();else if (!s.isEmpty() && !s.equals(".")) stack.push(s);}if (stack.size() == 0) return slash;StringBuilder sb = new StringBuilder();while (stack.size() != 0) {sb.append(slash).append(stack.pollLast());}return sb.toString();}
}

算法:Unix是如何简化路径的Simplify Path简化路径规则相关推荐

  1. Java NIO文件路径管理:Path类和Paths类

    本文章主要包括如下几个章节:类介绍.Path实例获取和文件路径管理.文件路径管理中,主要介绍了Path中定义的主要方法. 1.类的介绍 Path接口 是JDK1.7中定义的接口,主要用来在文件系统中定 ...

  2. 单目标应用:基于蛇群优化算法(SO)的无人机(UAV)三维路径规划(提供MATLAB代码)

    一.蛇群优化算法SO 蛇群优化算法(Snake Optimizer,SO)由Fatma A. Hashim和Abdelazim G. Hussien于2022年提出,该算法思路新颖,快速高效,模拟了蛇 ...

  3. 0x80070035找不到网络路径_蚁群算法(ACO)求解带时间窗的车辆路径(VRPTW)问题...

    蚁群算法求解VRPTW问题https://www.zhihu.com/video/1235315908018298880 今天为大家讲解使用蚁群算法(ACO)求解带时间窗的车辆路径(VRPTW)问题. ...

  4. LeetCode 71. Simplify Path

    LeetCode 71. Simplify Path 本博客转载自:https://blog.csdn.net/makuiyu/article/details/44497901 Solution1:没 ...

  5. linux生成core文件路径,core文件生成和路径设置

    在程序崩溃时,内核会生成一个core文件,即程序最后崩溃时的内存映像,和程序调试信息. 之后可以通过gdb,打开core文件察看程序崩溃时的堆栈信息,可以找出程序出错的代码所在文件和函数. 1.cor ...

  6. 未能找到路径的一部分_车辆路径规划三种MIP模型

    车辆路径规划问题的三个MIP模型.从直观的模型推导出高效的模型. 我们用最最标准的Capacitated VRP为例: CVRP问题描述:给定一张完全有向图: , 其中 是客户的集合, 分别是起点和终 ...

  7. leetcode二叉树 找路径_LeetCode0257: 二叉树的所有路径

    描述: 给定一个二叉树,返回所有从根节点到叶子节点的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 输入: 1 / \\ 2 3 \\ 5 输出: ["1->2->5&q ...

  8. html5 Canvas 绘制基本图形 从直线图形到使用路径 - 直线、矩形、路径、多边形、复杂组合图形

    html5: Canvas 绘制基本图形 从绘制直线 到 路径 Jack Lee 的 CSDN 博客 邮箱 :291148484@163.com CSDN 主页:https://blog.csdn.n ...

  9. 【POJ No. 3764】 最长xor 路径 The xor-longest Path

    [POJ No. 3764] 最长xor 路径 The xor-longest Path 北大OJ 题目地址 [题意] 在边权树中,路径p的xor长度被定义为路径p上边权的 ,⊕是xor运算符,表示异 ...

  10. matplotlib高级教程之形状与路径——patches和path

    一.什么是形状和路径 在一般的使用matplotlib进行绘图的时候,线形图.条形图.折线图.扇形图等等都是我们常见的一些绘图函数,但是有时候我们需要绘制一些特殊的形状和路径,比如我们要绘制一个椭圆, ...

最新文章

  1. 某程序员感叹:本是家族边缘人,但亲戚得知自己年入二百万后,都上来巴结!...
  2. python爬虫软件-8个最高效的Python爬虫框架,你用过几个?
  3. c#与科学计算之一:发掘 C# 特性赋予科学计算项目以威力(转贴)
  4. vue获取当前登陆用户信息
  5. PHP转换时间戳mktime,php日期转换为时间戳的方法
  6. 对话 SmartX:领跑超融合中高端市场之道——用专注加专业构筑企业云基础
  7. html元素可以有多个ID吗?
  8. silverlight寻奇
  9. 白话空间统计之二十五:空间权重矩阵(三)解构空间权重矩阵
  10. 数学牛人们的轶事[下]--zt 出处不详
  11. OpenCV 单/多目标跟踪传统算法实验
  12. 新版Vue项目配置项目名称-publicPath-前端_v1.0.2
  13. 南大地球科学能转计算机类吗,南京大学地球科学系
  14. 测试中常用的正则表达式你知道哪些?
  15. Frame skipped from debugging during step-in. VSCode调试无法定位其它库中代码的解决办法
  16. 中国计算机大赛游戏,我校在第10届全国大学生计算机设计大赛第暨4届中国大学生动漫游戏设计大赛,“星雨杯”福建省级赛的表现优异...
  17. 随机抽人名小程序_这些好用的微信小程序,你知道多少?
  18. java oxygen下载_Eclipse 下载 安装 (Oxygen版本)
  19. 输入一个整数将其倒着输出,如54321——12345。
  20. [故事]只会写自己名字的港大院士(图)

热门文章

  1. mac 恢复未能与服务_苹果电脑恢复macOS系统,磁盘被锁或无法识别到磁盘怎么回事呢?...
  2. 数据库—事务—并发控制技术
  3. CSS进阶(2)—— width,height如此高深,难道你真懂得
  4. JavaScript正则表达式19例(11)
  5. 浅谈C语言中的强符号、弱符号、强引用和弱引用【转】
  6. HDU 4421 Bit Magic(2-sat)
  7. 对网上盛传的两千万泄漏数据的简单分析
  8. Spring mvc时间格式处理
  9. 【转帖】MATLAB中用FDATool设计滤波器及使用
  10. VM虚拟机安装centos6.3详细图文教程