入门级题解71. 简化路径

2023-11-12

在这里插入图片描述
题目意思:翻译路径,题目给一个路径,你按规则翻译成另外的路径
split函数
https://baike.baidu.com/item/split%E5%87%BD%E6%95%B0/6628136
C++ push方法与push_back方法
(1)顺序性容器:各元素之间有顺序关系的线性表,是一种线性关系的有序集群,顺序容器中的元素均有固定的位置,除非用删除和插入来改变它的位置,这个位置和元素本身无关,和操作时间和地点有关。

vector:从后面快速删除和插入,访问任一元素;

思路:分情况解决
1.

任意多个连续的斜杠(即,’//’)都被视为单个斜杠 ‘/’

if(path[i] == '/'){
                i++;
            }

两个点 (…) 表示将目录切换到上一级(指向父目录);

if(s == ".." && !temp.empty()) {
                    temp.pop_back();//如果检测到"..",返回上一级目录
                }

一个点(.)表示当前目录本身

 else if(s != "." && s != ".."){
                    temp.push_back(s);//保存在栈中
                }

4.最后的处理

if(temp.empty()){
            return "/";
        };
        string res;
        for(string& s: temp){
            res += "/" + s;
        }
        return res;
class Solution {
public:
    string simplifyPath(string path) {
        vector<string> temp;
        int len = path.size();
        for(int i = 0; i < len;  ){
            if(path[i] == '/'){
                i++;
            }
            //如果检测到路径中'/',i++
            else{
                int now_index = i;//用来记录目录开始的位置
                while(i < len && path[i] != '/') {
                    i++;
                }
                string s = path.substr(now_index, i - now_index);//取目录
                if(s == ".." && !temp.empty()) {
                    temp.pop_back();//如果检测到"..",返回上一级目录
                }
                else if(s != "." && s != ".."){
                    temp.push_back(s);//保存在栈中
                }
            }
        }
        if(temp.empty()){
            return "/";
        };
        string res;
        for(string& s: temp){
            res += "/" + s;
        }
        return res;
    }
};

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

入门级题解71. 简化路径 的相关文章

  • JVM 内存模型

    内存划分 java虚拟机按照运行时内存使用区域划分如图 区域 是否线程共享 是否会内存溢出 程序计数器 否 不会 java虚拟机栈 否 会 本地方法栈 否 会 堆 是 会 方法区 是 会 一 程序计数器 Program Counter Re
  • 入门级题解:2000. 反转单词前缀

    题目 给你一个下标从 0 开始的字符串 word 和一个字符 ch 找出 ch 第一次出现的下标 i 反转 word 中从下标 0 开始 直到下标 i 结束 含下标 i 的那段字符 如果 word 中不存在字符 ch 则无需进行任何操作 思
  • 【C++研发面试笔记】16. 基本数据结构-队列queue与栈stack

    C 研发面试笔记 16 基本数据结构 队列queue与栈stack 16 1 STL中stack实现 stack 模板类的定义在头文件中 栈中的数据是先进后出的 First In Last Out FILO 栈只有一个出口 允许新增元素 只
  • Heap与Stack的区别

    1 heap是堆 stack是栈 2 stack的空间由操作系统自动分配和释放 heap的空间是手动申请和释放的 heap常用new关键字来分配 3 stack空间有限 heap的空间是很大的自由区 在Java中 若只是声明一个对象 则先在
  • c++栈实现表达式求值

    文章目录 前言 一 思想分析 二 具体实现 前言 后缀表达式的算法思想与具体实现 一 思想分析 设定两个栈 操作数栈 OPND 操作符栈 OPTR 栈初始化 置操作数栈 OPND 为空 操作符栈 OPTR 中预设一个优先级最低的操作符 自左
  • 栈实现计算机复杂计算

    package com yg stack author GeQiLin date 2020 2 22 14 14 import jdk nashorn internal ir ReturnNode public class Calculat
  • esp和ebp详解

    我的理解 国外一个比较好的汇编网站 http www tenouk com Bufferoverflowc Bufferoverflow1b html http blog sina com cn s blog c3bab4650101ogf
  • 汇编语法

    1 通用寄存器 EAX EBX ECX EDX ESI EDI ESP EBP 它 们 的低 16 位就是 8086 的 AX BX CX DX SI DI SP BP 它们的含义如下 EAX 累加器 EBX 基址寄存器 Base ECX
  • 数据结构学习——顺序栈和链式栈的简单实现和解析(C语言版)

    数据结构 栈的简单解析和实现 一 概念 二 入栈 push 三 出栈 pop 四 顺序栈简单实现 1 进栈操作 2 出栈操作 一 概念 本篇所讲解的栈和队列属于逻辑结构上的划分 逻辑结构分为线性结构 非线性结构 线性结构 有且仅有一个开始节
  • 1 栈-OOP

    栈实现的是后进先出 先进后出 策略 队列实现的是先进先出策略 1 栈 栈上的操作主要包括 INSERT操作称为压入 PUSH 注意上溢问题 即往满栈里添加元素 无参数版本的DELETE操作称为弹出 POP 注意下溢问题 即从空栈上取元素 S
  • 入门级题解71. 简化路径

    题目意思 翻译路径 题目给一个路径 你按规则翻译成另外的路径 split函数 https baike baidu com item split E5 87 BD E6 95 B0 6628136 C push方法与push back方法 1
  • linux驱动调试--段错误之栈信息分析

    转自 http blog chinaunix net xmlrpc php r blog article uid 29401328 id 4923529 接着上一篇来分析一下Oops的栈 s3c2440平台 关于调试源码和整个Oops信息请
  • 出栈的合法性检测

    对于一个给定的入栈顺序 可能的出栈顺序会有很多 但是肯定都要遵循栈 后进先出 的特点 那么怎么进行合法性检测呢 算法思想如下 定义变量InIndex标记入栈序列的当前位置 定义OutIndex标记出栈序列的当前位置 对InIndex和Out
  • 用一个数组实现两个栈(共享栈)

    共享栈 一个数组实现两个栈 第一个栈是开头 第二个栈是结尾 用c语言实现 很简单 两个指针一个数组就够了 上代码 define CRT SECURE NO WARNINGS 1 include
  • JVM内存模型图解(包含堆栈方法区例子和图解)

    下图是完整的虚拟机模型 我们主要是了解三个 1 堆区 heap 存储的全部是对象 每个对象都包含一个与之对应的class的信息 jvm只有一个堆区 heap 被所有线程共享 堆中不存放基本类型和对象引用 只存放对象本身 2 栈区 stack
  • C++实现栈的顺序存储与链式存储

    栈是一种特殊的数据结构 栈中数据先进后出 且栈中数据只能从头部出栈 能直接访问的数据也仅为栈的头部数据 要想访问下面的数据则需要将前面的数据逐个出栈后才可访问 下面通过一个word撤销的案例来解释 我们用word写paper时 首先需要创建
  • 【数据结构】详解栈的应用之表达式求值

    首先明白 前缀表达式 符号在前 如 3456 中缀表达式 符号在中间 如 3 4 5 6 后缀表达式 符号在最后 如34 5 6 后缀表达式不出现括号 中缀表达式转后缀表达式的方法 1 遇到数字 直接输出 添加到后缀表达式中 2 栈为空时
  • android判断一个Activity是否处于栈顶

    实际开发中我们需要很多情况需要判断某个activity是否位于栈顶 也许会给新的小伙伴带来困扰 那么直接上代码吧 也没几行 判断某activity是否处于栈顶 return true在栈顶 false不在栈顶 private boolean
  • 栈的讲解及实现(图解+代码/C语言)

    今天为大家分享的是栈的模拟实现 本文主要讲解如何以数组的形式模拟实现 同时给出链表模拟实现栈的代码 目录 图解栈的结构 数组模拟栈的分步实现 创建并初始化 入栈 检测栈是否为空 出栈 获取栈顶元素 获取栈内有效元素个数 销毁栈 链表模拟实现
  • C++用两个栈实现队列

    1 基础 队列 先进先出 即插入数据在队尾进行 删除数据在队头进行 栈 后进先出 即插入与删除数据均在栈顶进行 2 思路 两个栈实现一个队列的思想 用pushStack栈作为push数据的栈 用popStack栈作为pop数据的栈 只要是对

随机推荐

  • [UnityShader入门精要读书笔记]06.顶点/片元着色器基本结构

    Unity Shader基本结构包含Shader Properties SubShader FallBack等语义块 结构如下 Shader MyShaderName Properties 属性 SubShader 针对显卡A的SubSha
  • GoWeb——处理XML文件

    目录 处理XML文件 1 解析XML文件 2 生成XML文件 处理XML文件 XML eXtensible Markup Language 可扩展标记语言 是一种数据表示格式 可以描述非常复杂的数据结构 常用于传输和存储数据 1 解析XML
  • x86 calling conventions

    原文地址 http en wikipedia org wiki X86 calling conventions x86 calling conventions From Wikipedia the free encyclopedia Thi
  • 无监督分类的4种方法

    1 等宽法 类似于制作频数分布图 将属性分布值分为几个等分的分布区间 2 等频法 将相同数量的记录放入每个区间 3 基于聚类的分析方法 将属性按照K means算法进行聚类 然后根据聚类的分类 将同一聚类的记录合并到同一组内 4 模拟退火法
  • mysql 修改 sql model_mysql 开发基础系列22 SQL Model(带迁移事项)

    一 概述 与其它数据库不同 mysql 可以运行不同的sql model 下 sql model 定义了mysql应用支持的sql语法 数据校验等 这样更容易在不同的环境中使用mysql sql model 常用来解决下面几类问题 1 通过
  • tensorflow2.0(一)----多层感知机(MLP)

    在TensorFlow 1 X版本中 调用tf enable eager execution 函数启动Eager Execution模式 则需要调用tf compat v1 disable eager execution 函数 张量流使用张
  • ubuntu20.04 安装 Qt5.15

    目录 安装前工作 选择安装QT的哪个版本 安装时候选择哪些组件 安装Qt5 15 在线安装 我选择的组件 源码包安装 测试 安装前工作 ubuntu20 04 3安装Qt6 22操作步骤 ubuntu安装qt6 sonicss的博客 CSD
  • php header expire,解决PHP Expires 导致CDN出现TCP_MISS

    因为这个缘故 CDN的 x Cache总是MISS TCP MISS 导致要回源 查了半个小时 终于找到原因了 问题图片 来自session c Authors Sascha Schumann Andrei Zmievski CACHE L
  • Mac电脑安装win10虚拟机,然后安装ensp教程

    我是M1版本的macbook air 找了海量资料经过不断拼凑出来了一份还算详细的教程吧 分享给用苹果电脑的网络初学者 目前这个未安装virtualbox的版本经过简单测试运行正常 如有问题欢迎兄弟们来讨论批评 一 在PD里面安装win10
  • idea import顺序_IntelliJ IDEA 自动导包设置(Auto Import)

    自动导包 Auto Import Auto Import 功能可以帮助我们自动删除无用的包 未被引用的 以及自动 Import 填充尚未导入的包 完全智能化地帮助我们在开发程序时 省略了导包的操作 大大优化了开发的效率 设置步骤 Setti
  • Java生成并导出word文档,操作word文档

    word文档作为办公的重要文件格式 有时候我们会需要我们的java程序直接将计算得到的结果生成word文档 方便取用 这里我们使用第三方包iText来实现 1 首先在Eclipse上新建一个Java工程 我取名为Java2Word 本经验只
  • Hive学习笔记(HiveQL数据查询基础)

    Hive学习笔记 HiveQL数据查询基础 HiveQL数据查询语句 SELECT语句 WHERE语句 GROUP BY语句 HAVING分组筛选 ORDER BY语句和SORT BY语句 HiveQL查询语句 JOIN语句 自连接 自然连
  • 使用matlab里的集成树进行数据分类预测

    当使用MATLAB时 您可以使用集成学习方法中的决策树来进行数据分类预测 决策树是一种基于树状结构的机器学习算法 它通过对训练数据进行分层次的决策来进行预测 MATLAB提供了一个称为ClassificationTree的集成树分类器 以下
  • 浏览器扫一扫功能

    浏览器扫一扫功能 PC端已测试成功 移动端需要https没测试 1 html5 qrcode 安装 npm i html5 qrcode
  • Linux Kernel compile

    1 内核源码下载 http ftp sjtu edu cn sites ftp kernel org pub linux kernel v5 x 2 查看编译机器参数命令 screenfetch 3 三种编译方式进行内核编译配置 make
  • iOS 用UISearchDisplayController实现查找功能

    UISearchDisplayController是iOS中用于处理搜索功能的控制器 此控制器需要和UISearchBar结合使用 示例代码如下 1 2 WKRootViewController m 3 表格视图的搜索功能 4 5 Crea
  • unity打包报错Error building Player because scripts had compiler errors

    unity打包build时发现编辑器报Error building Player because scripts had compiler errors的错误 解决方法删除未使用的using UnityEngine UI的命名空间 如果使用
  • thymeleaf 页面获取当前页面的完整URL地址

    下面两种方法是一样的 div div div div httpServletRequest 标签还有很多相关的方法 自己试试吧 原创文章 欢迎转载 转载请注明出处
  • 基于nginx+nodejs的api,接口权限验证

    因项目的接口没权限验证 经常被误登录操作 产生脏数据 在这样的业务场景下 我思考了几套方案 1 限客户端连接的ip 2 后端的接口做权限验证 3 前端做权限验证 我是采用第三套方案 简单演示如下 nginx nodejs做一个入口权限认证
  • 入门级题解71. 简化路径

    题目意思 翻译路径 题目给一个路径 你按规则翻译成另外的路径 split函数 https baike baidu com item split E5 87 BD E6 95 B0 6628136 C push方法与push back方法 1