1 class Solution {
2 public:
3 string simplifyPath(string path) {
4 // IMPORTANT: Please reset any member data you declared, as
5 // the same Solution instance will be reused for each test case.
6 vector<string> names;
7 int len = path.length();
8 string token = "";
9 for (int i=0; i<len; i++){
10 char c = path.at(i);
11 if (c!='/'){
12 token += c;
13 continue;
14 }
15 else if (token == "" || token=="."){
16 token = "";
17 continue;
18 }
19 if (token==".." && !names.empty())
20 names.pop_back();
21 else if (token!="..") names.push_back(token);
22 token = "";
23 }
24 if (token!="" && token!="."){
25 if (token==".." && !names.empty())
26 names.pop_back();
27 else if (token!="..") names.push_back(token);
28 }
29 if (names.empty())
30 return "/";
31 int size = names.size();
32 string rlt;
33 for (int i=0; i<size; i++)
34 rlt+= "/"+names[i];
35 return rlt;
36 }
37 };