71. 简化路径

news2024/12/26 0:25:16

题目链接:力扣

 

解题思路:

  1. 以 "/" 对路径字符串进行分割,得到分割后的数组split,那么数组中每个元素就是一级路径的名称
  2. 对split进行遍历:使用一个队列deque保存最终的每一个目录
    1. 如果当前字符串是 "..",说明需要返回到上一级目录,
      1. 如果队列不为空,从队列deque中移除队尾的元素
    2. 否则,如果当前字符串是 ".",说明就是当前目录,什么也不做
    3. 否则,说明当前字符串是一个目录名,将其加入到队尾
  3. 最后队列中保存的就是最终的每一级目录,顶级目录在队头

AC代码

class Solution {
     public static String simplifyPath(String path) {
        String[] split = path.split("/+");
        Deque<String> deque = new LinkedList<>();
        for (int i = 1; i < split.length; i++) {
            if (split[i].equals("..")) {
                if (!deque.isEmpty()){
                    deque.pollLast();
                }
            } else if (!split[i].equals(".")) {
                deque.addLast(split[i]);
            }
        }
        
        if (deque.isEmpty()) {
            return "/";
        }
        StringBuilder result = new StringBuilder();
        for (String s : deque) {
            result.append("/");
            result.append(s);
        }

        return result.toString();
    }
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/832945.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

发明专利申请:不能包含文本框或自选图形 || 不能包含域对象(校验错误)

提交出错 解决方案&#xff1a;如果xml文件传上去没有反应&#xff0c;一定要优先把word转成pdf&#xff0c;不要去文本框中输入&#xff1a;里面的公式编辑器很老旧&#xff08;很多公式编辑不了&#xff09; 上传以后&#xff0c;总体预览没有问题就ok&#xff0c;前序穿文件…

【GitOps系列】如何实施自动化渐进式交付?

文章目录 前言自动渐进式交付概述自动渐进式交付准备创建生产环境创建 AnalysisTemplate访问生产环境安装Prometheus配置 Ingress-Nginx 和 ServiceMonitor验证 Ingress-Nginx 指标 自动渐进式交付实战自动渐进式交付成功自动渐进式交付失败 结语 前言 在实施金丝雀发布的过程中…

Golang之路---03 面向对象——反射

反射 反射的存在意义 在开发中&#xff0c;你或许会碰到在有些情况下&#xff0c;你需要获取一个对象的类型&#xff0c;属性及方法&#xff0c;而这个过程其实就是反射。 golang中变量包括&#xff08;type, value&#xff09;两部分 静态类型 所谓的静态类型&#xff08;…

【智慧校园】智慧班牌云平台源码,使用springboot vue框架

【智慧校园】智慧班牌云平台源码&#xff0c;使用springboot vue框架 前后端分离架构 1、使用springboot vue框架 2、数据库MySQL5.7 3、移动端小程序使用小程序原生语言开发 4、电子班牌固件安卓7.1&#xff1b;使用Java Android原生 5、java&#xff0c;elmentui &…

四、Unity中颜色空间

Unity中的设置 通过点击菜单Edit->Project Settings->Player页签->Other Settings下的Rendering部分进行修改&#xff0c;参数Color Space可以选择Gamma或Linear。 当选择Gamma Space时&#xff0c;Unity不会做任何处理。当选择Linear Space时&#xff0c;引擎的渲染…

电测知识分享——三千字解读时钟电路最重要部件,建议收藏!

晶振作为时钟电路中最重要的部件&#xff0c;在电路中起着产生震荡频率的作用&#xff0c;可以产生高度稳定的信号&#xff0c;并稳定工作环境&#xff0c;为系统提供基本的时钟信号&#xff0c;在工业、科技、车载、数码、电子等多个领域几乎都有应用场景。 今天&#xff0c;…

MySQL binLog问题

看到数据库目录下有很多OFF.*文件的时候很诧异&#xff0c;这玩意是啥&#xff0c;binlog不应该都是*bin-log.*​的文件吗&#xff1f;* [roottest ~]# cd /data/mysql_data [roottest mysql_data]# ls ansible hap_attach_yl hap_func_yl hap_msg_yl h…

区块链媒体发稿:区块链媒体宣发常见问题解析

据统计&#xff0c;由于区块链应用和虚拟货币的兴起&#xff0c;越来越多媒体对区块链领域开展报导&#xff0c;特别是世界各国媒体宣发全是热火朝天。但是&#xff0c;随着推卸责任媒体宣发的五花八门&#xff0c;让很多人因而上当受骗&#xff0c;乃至伤害一大笔资产。身为投…

【TiDB理论知识08】HATP概述

1 HTAP技术 OLTP 在线事务 支付 转账 高并发 每次操作的数据量少 &#xff0c;行存 OLAP 报表分析 每次操作大量数据 列存储 2 传统解决方案 数据抽取到数仓或者数据湖 ETL有延迟 &#xff0c;一般会有T1 T2 数据多副本 3 HTAP的要求 4 TIDB的HTAP架构 TiFlash特点&…

IO进程线程day6(2023.8.3)

一、Xmind整理&#xff1a; 进程与线程关系&#xff1a; 二、课上练习&#xff1a; 练习1&#xff1a;pthread_create 功能&#xff1a;创建一个线程 原型&#xff1a; #include <pthread.h> int pthread_create(pthread_t *thread, const pthread_attr_t *attr, vo…

【新版系统架构补充】-七层模型

网络功能和分类 计算网络的功能 &#xff1a;数据通信、资源共享、管理集中化、实现分布式处理、负载均衡 网络性能指标&#xff1a;速率、带宽&#xff08;频带宽度或传送线路速率&#xff09;、吞吐量、时延、往返时间、利用率 网络非性能指标&#xff1a;费用、质量、标准化…

三、基本流程控制结构

3.1结构化程序设计 基本控制结构&#xff1a; 顺序结构选择结构循环结构 C语句&#xff1a; 说明语句控制语句函数调用语句表达式语句空语句复合语句 3.2选择结构语句 if语句&#xff1a; &#xff08;1&#xff09;单选条件语句 if(表达式) 语句 if(x>y) cout<&l…

Tomcat的介绍和安装配置、eclipse中动态web项目的创建和运行、使用IDEA创建web项目并运行

一、Tomcat的介绍和安装配置 安装tomcat&#xff1a; 环境变量的配置&#xff1a; 配置之后重启cmd&#xff0c;执行startup命令&#xff0c;启动tomcat 在localhost:8080&#xff0c;能进入tomcat主界面&#xff0c;说明配置成功 二、eclipse中动态web项目的创建和运行 tomca…

基于回溯算法实现八皇后问题

八皇后问题是一个经典的计算机科学问题&#xff0c;它的目标是将8个皇后放置在一个大小为88的棋盘上&#xff0c;使得每个皇后都不会攻击到其他的皇后。皇后可以攻击同一行、同一列和同一对角线上的棋子。 一、八皇后问题介绍 八皇后问题最早由国际西洋棋大师马克斯贝瑟尔在18…

王道《操作系统》学习(二)—— 进程管理(二)

2.1 处理机调度的概念、层次 2.1.1 调度的基本概念 2.1.2 调度的三个层次 &#xff08;1&#xff09;高级调度&#xff08;作业调度&#xff09; &#xff08;2&#xff09;中级调度&#xff08;内存调度&#xff09; 补充知识&#xff1a;进程的挂起状态和七状态模型 &#x…

Three.js室内场景

Three.js实现三维可视化室内场景 1.效果 2.安装 要安装three 的 npm 模块,请在你的项目文件夹里打开终端窗口,并运行: npm install three 或 yarn add three包将会被下载并安装。然后你就可以将它导入你的代码了: import * as THREE from three引入性能监视器: impor…

MySQL日志——错误日志、二进制日志

错误日志二进制日志查询日志慢查询日志 1.错误日志 查看日志位置&#xff1a; show variables like %log_error%查看错误日志&#xff1a; tail -f /var/log/mysql.log2.二进制日志 show variables like %log_bin%;cd /var/lib/mysql ll2.1 日志格式 查看日志格式指令&…

第9章 CSS-DOM

三位一体的网页 游览器由结构层&#xff0c;表现层&#xff0c;行为层组成 结构层 网页的结构层&#xff08;structural layer&#xff09;由HTML或XHTML之类的标记语言负责创建。 表现层 表示层&#xff08;presentation layer&#xff09;由CSS负责完成。CSS描述页面内容…

腾讯云COS+PicGO+截图工具+Obsidian+Typora+蚁小二:打造丝滑稳定的Markdown写作和分发环境

背景 很久很久以前&#xff0c;我写过一篇《有道云笔记EverythingTyporaGitHub图床PicGojsDelivr加速截图工具——创造丝滑免费的Markdown写作环境》&#xff08;https://blog.csdn.net/qq_43721542/article/details/9685957&#xff09;&#xff0c;当时的目的是打造一个云同…

中国艺术孙溟㠭篆刻作品《活着》

人人为生活挣扎着&#xff0c;做着不想做的事&#xff0c;说着不想说的话&#xff0c;为生活低头弯腰委屈求全人生苦多甜少&#xff0c;何时了&#xff01;何时了&#xff01;甜来人生到头了…… 孙溟㠭篆刻作品《活着》 孙溟㠭篆刻作品《活着》 孙溟㠭篆刻作品《活着》 文/九钵