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;
    }
};
相关推荐
张张努力变强2 分钟前
C++ 类和对象(二):实例化、this指针、构造函数、析构函数详解
开发语言·c++
夏鹏今天学习了吗5 分钟前
【LeetCode热题100(84/100)】乘积最大子数组
算法·leetcode·职场和发展
量子炒饭大师7 分钟前
【C++入门】骇客数据面向对象的灵魂锚点——【类与对象】this指针篇
java·c++·dubbo·this·this指针
Yupureki12 分钟前
《算法竞赛从入门到国奖》算法基础:入门篇-递归初阶
c语言·开发语言·数据结构·c++·算法·visual studio
源代码•宸27 分钟前
Leetcode—3314. 构造最小位运算数组 I【简单】
开发语言·后端·算法·leetcode·面试·golang·位运算
夏鹏今天学习了吗27 分钟前
【LeetCode热题100(88/100)】最长回文子串
算法·leetcode·职场和发展
夏鹏今天学习了吗31 分钟前
【LeetCode热题100(87/100)】不同路径
算法·leetcode·职场和发展
漫随流水34 分钟前
leetcode回溯算法(17.电话号码的字母组合)
数据结构·算法·leetcode·回溯算法
青小莫36 分钟前
C++之模板
android·java·c++
2401_841495641 小时前
【数据结构】英文单词词频统计与检索系统
数据结构·c++·算法·排序·词频统计·查找·单词检索