leetcode - Simplify Path
2013-11-11 23:09 张汉生 阅读(148) 评论(0) 编辑 收藏 举报
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 };