解题思路:使用栈记录路径,遇到’.’跳过,遇到’..’则需出栈,其他的情况进栈。如果栈为空,说明是根目录,返回’/’
class Solution
{
public:
string simplifyPath(string path)
{
stack<string> ss;
int i = 0;
while(i<path.size()){
while(i<path.size() && path[i]=='/') i++;
string s = "";
while(i<path.size() && path[i]!='/'){
s+=path[i++];
}
if(".."==s && !ss.empty()) ss.pop();
else if(s!="" && s!="." && s!="..") ss.push(s);
}
if(ss.empty()) return "/";
string ans = "";
while (!ss.empty()){
ans = "/"+ss.top()+ans;
ss.pop();
}
return ans;
}