news 2026/5/1 11:29:28

LeetCode 71:简化 Unix 路径(Simplify Path)——栈 / vector

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode 71:简化 Unix 路径(Simplify Path)——栈 / vector

LeetCode 71:简化 Unix 路径(Simplify Path)——栈 / vector

1. 题目描述

给定一个 Unix 风格的绝对路径path,请将其化简为规范路径。规则如下:

  • 多个连续的/视为一个/
  • .表示当前目录,忽略
  • ..表示返回上一级目录(若已在根目录/,则保持/
  • 其他字符串视为目录名,保留

输出要求:

  • 必须以/开头
  • 目录之间用单个/分隔
  • 末尾不能多一个/(除非输出就是根目录/

2. 解题思路(用栈保存目录)

把路径按/切成一个个目录片段(token),用vector<string>充当“栈”:

  • token 为空:说明是开头的/或出现//→ 跳过
  • token ==.:当前目录 → 跳过
  • token ==..:返回上级 → 栈非空则pop_back()
  • 其他:正常目录名 →push_back()

最后把栈中的目录按顺序拼接回去:

  • 栈空 → 返回/
  • 否则 →/" + dir1 + "/" + dir2 + ...

3. 示例

  • 输入:/home/
    输出:/home

  • 输入:/a/./b/../../c/
    输出:/c

  • 输入:/../
    输出:/

  • 输入:/home//foo/
    输出:/home/foo


4. 代码实现

#include<string>#include<vector>usingnamespacestd;classSolution{public:stringsimplifyPath(string path){vector<string>st;string name;intlen=static_cast<int>(path.size());for(inti=0;i<=len;++i){charc=(i==len)?'/':path[i];if(c=='/'){//name为空有2种情况,一种就是开始就是 '/'//另一种就是连续的 '/'(因为上次name被clear了)if(name.empty())continue;if(name=="."){}elseif(name==".."){if(!st.empty())st.pop_back();}else{st.emplace_back(name);}name.clear();}else{name.push_back(c);}}if(st.empty())return"/";string res;for(constauto&s:st){res.push_back('/');res+=s;}returnres;}};
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 3:45:37

矽塔 SA8870C 4.5-40V宽压、4.5A峰值、集成电流调节有刷直流电机驱动芯片技术解析

一、芯片核心定位SA8870C 是一款高度集成的 H桥有刷直流电机单芯片驱动器 其核心价值在于 4.5V至40V的宽范围工作电压、高达4.5A的峰值输出电流 以及 基于VREF的模拟电流调节功能 专为机器人、家电、工业设备等需要精准控制电机转矩与速度&#xff0c;且对系统可靠性有高要求的…

作者头像 李华
网站建设 2026/5/1 4:44:06

如何选择适合企业的代理记账公司?——小企业的财务管理故事

随着企业的发展&#xff0c;尤其是对于中小型企业&#xff0c;财务管理逐渐变得越来越复杂。企业不仅需要处理日常的账务数据&#xff0c;还要应对税务申报和财务合规等问题。对于许多创业者来说&#xff0c;财务管理成了一个繁琐且专业的任务。而在这个过程中&#xff0c;代理…

作者头像 李华
网站建设 2026/5/1 4:47:17

CNN - BiLSTM - SelfAttention在Matlab中的多变量回归预测探索

CNN-BiLSTM-SelfAttention基于卷积神经网络-双向长短期记忆网络结合自注意力机制的多变量回归预测Matlab语言 1.多特征输入&#xff0c;回归也可以换成时间序列单列预测&#xff08;售前选一种&#xff09;&#xff0c;Matlab版本要在2021a及以上。 2.特点&#xff1a; 1卷积神…

作者头像 李华
网站建设 2026/4/30 6:57:19

【毕业设计】基于springboot工资管理系统基于JavaWeb的企业工资管理系统(源码+文档+远程调试,全bao定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/5/1 4:41:36

wordpress博客搭建

wordpress博客搭建1. 服务器配置1.1 关闭防火墙和SELINUX2 php环境部署2.1 安装php相关软件和Apache2.2 测试3. 数据库环境准备3.1 安装MySQL数据库3.2 数据库环境准备4. wordpress部署5. wordpress初始化1. 服务器配置 服务器IP系统所需服务10.0.0.12Rocky9Apache&#xff0c…

作者头像 李华