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