NC299 简化目录路径

简化目录路径

https://www.nowcoder.com/practice/3177bcbfd947409ba833efb5a5b4a24c?tpId=196&tqId=40136&rp=1&ru=/exam/oj&qru=/exam/oj&sourceUrl=%2Fexam%2Foj%3Fpage%3D1%26pageSize%3D50%26search%3D%26tab%3D%25E7%25AE%2597%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D196&difficulty=undefined&judgeStatus=undefined&tags=581&title=

class Solution {
public:
    string simplifyPath(string path) {
        string a,b;
        //如果路径的最后不是'/',则在路径字符串的最后添加上'/',这样才可以处理最后一个路径
        if(path.back()!='/'){
            path+='/';
        }
        for(auto c:path){
            //如果不是'/',即就是路径内具体的英文内容添加到b字符串上
            if(c!='/') {
                b+=c;
            }else{
                //如果是'/',则就需要分成几种情况讨论:
                //情况一:如果当前记录的b是两个点,则返回上一层的目录,再判断一下如果a不为空,就将/也弹出
               if(b==".."){
                   while(a.size()&&a.back()!='/') a.pop_back();
                   if(a.size()) a.pop_back();
                   //情况2:如果b不是'.'且b不为空,就将b记录的英文字符串的前面添加一个‘/’
               }else if(b!="."&&b!=""){
                   a+='/'+b;
               }
               //每次将记录路径的英文字符清空
               b.clear();
            }
        }
        //最后判断一下,如果a为空,由于最少也要有根目录:‘/’
        if(a.empty()) a='/';
        return a;
    }
};
全部评论

相关推荐

头像
11-27 14:28
长沙理工大学
刷算法真的是提升代码能力最快的方法吗? 刷算法真的是提升代码能力最快的方法吗?
牛牛不会牛泪:看你想提升什么,代码能力太宽泛了,是想提升算法能力还是工程能力? 工程能力做项目找实习,算法也分数据结构算法题和深度学习之类算法
点赞 评论 收藏
分享
M_bao:换个排版吧哥们,看着费劲
点赞 评论 收藏
分享
点赞 评论 收藏
分享
11-28 17:58
门头沟学院 Java
美团 JAVA开发 n×15.5
牛客786276759号:百度现在晋升很难的 而且云这块的业务没美团好 你看百度股价都跌成啥样了
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务