C++ | Leetcode C++题解之第71题简化路径

题目:

题解:

cpp 复制代码
class Solution {
public:
    string simplifyPath(string path) {
        auto split = [](const string& s, char delim) -> vector<string> {
            vector<string> ans;
            string cur;
            for (char ch: s) {
                if (ch == delim) {
                    ans.push_back(move(cur));
                    cur.clear();
                }
                else {
                    cur += ch;
                }
            }
            ans.push_back(move(cur));
            return ans;
        };

        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(move(name));
            }
        }
        string ans;
        if (stack.empty()) {
            ans = "/";
        }
        else {
            for (string& name: stack) {
                ans += "/" + move(name);
            }
        }
        return ans;
    }
};
相关推荐
艾莉丝努力练剑1 小时前
【Linux基础开发工具 (三)】Vim从入门到精通(下):效率翻倍的编辑技巧与个性化配置攻略
linux·运维·服务器·c++·ubuntu·centos·vim
草莓熊Lotso1 小时前
C++ STL set 系列完全指南:从底层原理、核心接口到实战场景
开发语言·c++·人工智能·经验分享·网络协议·算法·dubbo
做怪小疯子3 小时前
LeetCode 热题 100——子串——和为 K 的子数组
算法·leetcode·职场和发展
AA陈超6 小时前
ASC学习笔记0014:手动添加一个新的属性集
c++·笔记·学习·ue5
Run_Teenage6 小时前
C++:智能指针的使用及其原理
开发语言·c++·算法
希望有朝一日能如愿以偿8 小时前
力扣每日一题:仅含1的子串数
算法·leetcode·职场和发展
Mr_WangAndy8 小时前
C++_chapter15_C++重要知识点_auto,function,bind,decltype
c++·decltype·bind·function·可调用对象
苏小瀚9 小时前
算法---FloodFill算法和记忆化搜索算法
数据结构·算法·leetcode
万象.9 小时前
QT基础及对象树的认识
c++·qt
小张成长计划..11 小时前
【C++】2:cin和cout的介绍和使用,函数的缺省参数
c++