解题思路:
这是一道很好的简单题,文件系统的结构本身就是栈的形式,所以用栈的方式解决是最合理的方式,将所在的文件结构放入栈中,随着深入和返回进行入栈出栈操作,解法很简单,但是如果稍加改编,题目可以更加复杂,比如加入绝对路径搜集,加入“…/d1/”这样退到父文件夹再往子文件夹去的操作,这些都值得思考的,代码如下:
class Solution {
public:
int minOperations(vector<string>& logs) {
int depth = 0;
stack<string> s;
for(int i = 0; i < logs.size(); i ++) {
if(logs[i] == "./") {
continue;
} else if(logs[i] == "../") {
if(!s.empty()) {
s.pop();
}
} else {
string temp = logs[i].substr(0, logs.size() - 1);
s.push(temp);
}
}
return s.size();
}
};