simplify path

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) {
stack<string>st;
string name = "";
path.append(1,'/');
for(int i=0; i<path.size(); i++){
if(path[i] == '/'){
if(name.size() != 0){
if(name == "."){}
else if(name == ".."){
if(!st.empty())st.pop();
}
else{
st.push(name);
}
name = "";
}
}
else{
name += path[i];
}
}
string res = "";
if(st.empty()) return "/";
while(!st.empty()){
res = "/"+ st.top() + res;
st.pop();
}
return res;
}