一、题目
演示示例:
二、测试代码
class Solution {
public int minOperations(String[] logs) {
Stack<String> stack=new Stack<>();
for(int i=0;i<logs.length;i++){
if(logs[i].equals("./")){//遇到"./"不进行操作
continue;
}else if(logs[i].equals("../")){//遇到"../"若栈不为空则出栈一个元素,若栈不空则不进行操作
if(!stack.isEmpty()){
stack.pop();
}else{
continue;
}
}else{
stack.push(logs[i]);//遇到其他字符串直接入栈
}
}
return stack.size();//栈的大小即为返回主文件夹所需的最小步数
}
}
三、运行情况
四、刷题总结
本题的主要思路:我们利用栈,在遍历字符串数组时若遇到 “./” 不进行操作;若遇到"…/"若栈不为空则出栈一个元素,若栈不空则不进行操作;若遇到其他字符串直接入栈,最后栈的大小即为返回主文件夹所需的最小步数。在编程过程时,需要注意字符串匹配要使用equals方法而不能使用==;同时在不进行任何操作时,需要使用continue继续执行for循环,而不能使用break退出for循环。