Given an absolute path for a file (Unix-style), simplify it.
For example,
path = "/home/"
, => "/home"
path = "/a/./b/../../c/"
, => "/c"
思路:说白了就是字符串的处理。".."的话就pop一个,字母的话就是push
class Solution { public: string simplifyPath(string path) { vector<string> ans; int i = 0; while (i < path.size()) { int end = i + 1; while (end < path.size() && path[end] != '/') end++; string sub = path.substr(i+1, end-i-1); if (sub.length() > 0) { if (sub == "..") { if (!ans.empty()) ans.pop_back(); } else if (sub != ".") ans.push_back(sub); } i = end; } if (ans.empty()) return "/"; string tmp = ""; for (int i = 0; i < ans.size(); i++) tmp += "/" + ans[i]; return tmp; } };