Given an absolute path for a file (Unix-style), simplify it.
For example,
path = "/home/", => "/home"
path = "/a/./b/../../c/", => "/c"
这个题用用栈来做比较方便,最要是对“.”和“..”进行处理,注意分情况即可。
class Solution {
public:
string simplifyPath(string path) {
stack<string> s;
string str;
int a,b;
bool flag=true;
char c;
for(int i=0;i<path.size();i++)
if(path[i]=='/')
path[i]=' ';
istringstream sin(path);
while(sin>>str){
if(str==".." && !s.empty())
s.pop();
else if(str=="." || (str==".." && s.empty())){}
else
s.push(str);
}
if(s.empty())
return "/";
string res;
while(!s.empty()){
res="/"+s.top()+res;
s.pop();
}
return res;
}
};