题目描述
思路分析
树 / 栈 / 字符串模拟
用字符串模拟来做(实际是栈的思想 )。
如果是/…就退回;如果是/.就不变;否则就加入ans;
代码实现
class Solution {
public:
string simplifyPath(string path) {
string ans,name;
if(path.back()!='/') path+='/';
for(auto& c:path){
if(c!='/') name+=c;
else{
if(name==".."){
while(ans.size()&&ans.back()!='/') ans.pop_back();
if(ans.size()) ans.pop_back();
}
else if(name!="."&&name!=""){
ans+='/'+name;
}
name.clear();
}
}
if(ans.empty()) ans="/";
return ans;
}
};