simplify-path-字符串处理,去除多余路径

题目描述

Given an absolute path for a file (Unix-style), simplify it.

For example,
path ="/home/", =>"/home"
path ="/a/./b/../../c/", =>"/c"

click to show corner cases.

Corner Cases:

 

  • Did you consider the case where path ="/../"?
    In this case, you should return"/".
  • Another corner case is the path might contain multiple slashes'/'together, such as"/home//foo/".
    In this case, you should ignore redundant slashes and return"/home/foo".
 
记住stringstream以及getline函数的作用
复制代码
class Solution {
public:
    string simplifyPath(string path) {
        vector<string> str;
        stringstream ss(path);
        string sub;
        while(getline(ss,sub,'/'))
        {
            if(sub=="."||sub=="")
                continue;
            if(sub==".."&&str.size())
                str.pop_back();
            if(sub!="..")
                str.push_back(sub);
        }
        string res;
        for(string s:str)
            res+="/"+s;
        if(res.empty())
            res+="/";
        return res;
    }
};
复制代码

 

posted @   鸭子船长  阅读(333)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2017-09-11 make_pair
2017-09-11 fwrite和fread函数的用法小结(转)
2017-09-11 函数fseek() 用法(转)
2015-09-11 表示数值的字符串
点击右上角即可分享
微信分享提示