时间轴
时间轴
2025-11-18
init
栈
题目:
要区分第一个"/“和后面的”/“的区别,第一个为根目录,后面的则是分隔符,因此我们可以把一个目录看作”/" + “目录名”。
如果目录为""即为空字符串,则为根目录。
123456789101112131415161718192021222324252627282930313233343536373839 | using std::string;using std::stringstream;using std::stack;class Solution { public: string simplifyPath(string path) { string res, curr; stringstream ss(path); stack<string> st; while (std::getline(ss, curr, '/')) { if (curr.empty()) continue; if (curr.compare("..") == 0) { if (!st.empty()) st.pop(); else continue; } else if (curr.compare(".") == 0) { continue; } else { st.push(curr); } } while (!st.empty()) { curr = st.top(); st.pop(); res.insert(0, curr); res.insert(0, "/"); } if (res.empty()) res = "/"; return res; }}; |
