题目描述
Given an absolute path for a file (Unix-style), simplify it.
For example,
path =”/home/”, =>”/home”
path =”/a/./b/../../c/”, =>”/c”
click to show corner cases.
Corner Cases:
Did you consider the case where path =”/../”?
In this case, you should return”/”.
Another corner case is the path might contain multiple slashes’/’together, such as”/home//foo/”.
In this case, you should ignore redundant slashes and return”/home/foo”.
string simplifyPath(string path) {
vector<string> vec;
stringstream ss(path);
string sub;
while(getline(ss, sub, '/')){
if(sub == "." || sub=="")
continue;
if(sub == ".." && !vec.empty())
vec.pop_back();
else if(sub != "..")
vec.push_back(sub);
}
string ans;
for(auto temp:vec)
ans +='/'+temp;
return vec.empty()?"/":ans;
}