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;
    }
};