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;
    }
};
全部评论

相关推荐

牛客101244697号:电竞协会感觉不如不写
点赞 评论 收藏
分享
11-07 13:31
怀化学院 Java
勇敢牛牛不怕难:又疯一个
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务