首页 > 其他分享 >LeetCode/简化路径

LeetCode/简化路径

时间:2023-05-04 22:36:21浏览次数:33  
标签:back name 路径 cur stack 简化 ans LeetCode string

简化unix文件路径

1. 分割提取+栈

class Solution {
public:
    string simplifyPath(string path) {
        vector<string> names = split(path, '/');//消除/并得到待处理的多段文件名
        vector<string> stack;//这里需要使用栈来判断..的回跳
        for (string& name: names) {
            if (name == ".."){
                if(!stack.empty()) stack.pop_back();//回跳到上一级目录
            }
            else if (!name.empty() && name != ".") //不处理空字符串和单点
                stack.push_back(name);//当前目录入栈
        }
        string ans;
        if (stack.empty())  return "/";//没有访问子目录
        for (string& name: stack) //拼接剩余的目录
                ans += "/" + name;
        return ans;
    }
    vector<string> split (string& s, char delim) {//根据字符划分字符串
        vector<string> ans;
        string cur;
        for (char ch: s) {
            if (ch == delim) {//碰到了分隔符
                ans.push_back(cur);
                cur.clear();
            }
            else cur += ch;
        }
        ans.push_back(cur);
        return ans;
    };
};

标签:back,name,路径,cur,stack,简化,ans,LeetCode,string
From: https://www.cnblogs.com/929code/p/17372719.html

相关文章

  • [Leetcode] 0657. 机器人能否返回原点
    657.机器人能否返回原点题目描述在二维平面上,有一个机器人从原点(0,0)开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0,0)处结束。移动顺序由字符串 moves 表示。字符move[i]表示其第i次移动。机器人的有效动作有 R(右),L(左),U(上)和D(下)。如果机器人在完......
  • [Leetcode] 0001. 两数之和
    1.两数之和题目描述给定一个整数数组nums 和一个整数目标值target,请你在该数组中找出和为目标值target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。 示例1......
  • LeetCode 双周赛 103(2023/04/29)区间求和的树状数组经典应用
    本文已收录到AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]提问。大家好,我是小彭。这场周赛是LeetCode双周赛第103场,难得在五一假期第一天打周赛的人数也没有少太多。这场比赛前3题比较简单,我们把篇幅留给最后一题。往期周赛回顾:LeetCode单周赛第342场·容......
  • LeetCode -- 递归 dfs、回溯
    22. 括号生成 classSolution{publicList<String>generateParenthesis(intn){List<String>result=newArrayList();if(n==0){returnresult;}//必须要用字符串,每次拼接要产生新对象。不能用StringBuf......
  • CarSim与Simulink联合仿真,实时检测,动态规划路径,实现超车换道,基于mpc,模型预测控制实现,
    CarSim与Simulink联合仿真,实时检测,动态规划路径,实现超车换道,基于mpc,模型预测控制实现,距离效果见视频提供carsim参数配置文件,导入即可运行提供simulink模型文件提供运行指导视频提供模型说明文档ID:12300675337052008......
  • Lanelet2高精地图解析及全局路径规划, Lanelet2格式的高精地图是与opendrive高精地图并
    Lanelet2高精地图解析及全局路径规划,Lanelet2格式的高精地图是与opendrive高精地图并行的当前两大最流行的高精地图格式。在autoware停止维护AI版本推出Auto版本后,更是将原先的Lanelet地图格式进行升级为lanelet2。因此,如果大家有公司的产品依赖autoware的代码进行部署的,熟悉Lane......
  • 纯跟踪控制 路径跟踪算法 carsim simulink联合仿真
    纯跟踪控制路径跟踪算法carsimsimulink联合仿真ID:6615644793475964......
  • 【nodejs基础】认识nodejs、详解fs文件系统模块与path路径模块01
     1.初识Node.js浏览器中的JavaScript的组成部分 为什么JavaScript可以在浏览器中被执行不同的浏览器使用不同的JavaScript解析引擎Chrome浏览器=>V8Firefox浏览器=>OdinMonkey(奥丁猴)Safri浏览器=>JSCoreIE浏览器=>Chakra(查克拉)其中,Chrome浏览器的V8......
  • Leetcode1~10题整理
    1.两数之和哈希表:O(n)classSolution{public:vector<int>twoSum(vector<int>&nums,inttarget){unordered_map<int,int>hs;intn=nums.size();for(inti=0;i<n;i++){intx=target-n......
  • Salesforce LWC学习(四十三) lwc 零基础学习路径的视频已上传B站
    本篇参考:https://www.bilibili.com/video/BV1QM411G7pN/还记得salesforce零基础学习(一百二十五)零基础学习SF路径 中描述的那样,预计今年年底以前基于0基础学习的内容录制成视频,更好的更方便的进行学习和互动。当时的一个动机是以前公司做veeva的同事或者java以及.net转过来的同事......