题目来源
题目描述
题目解析
栈模拟操作
class Solution {
public:
int minOperations(vector<string>& logs) {
std::stack<std::string> stack;
for(auto & log : logs){
if(stack.empty()){
if(log != "../" && log != "./"){
stack.push(log);
}
}else{
if(log == "../"){
stack.pop();
}else if(log == "./"){
}else{
stack.push(log);
}
}
}
return stack.size();
}
};
计数原理,当遇到文件时就ans加1,遇到“…/”就先判断ans是否为0,否则ans减1。这是从栈中简练出来的
class Solution {
public:
int minOperations(vector<string>& logs) {
int ans = 0;
for(auto & log : logs){
if(log == "../"){
if(ans != 0){
--ans;
}
}else if(log == "./"){
}else{
++ans;
}
}
return ans;
}
};