题目:
class Solution {
public:
bool validateStackSequences(vector<int>& pushed, vector<int>& popped) { //模拟,pushed里的每一个元素都必定经过入栈和出栈的操作。
stack<int> st;
for(int i=0,j=0;i<pushed.size();i++){ //遍历pushed数组,每一个元素都进行一次入栈操作
st.push(pushed[i]);
while(!st.empty()&&st.top()==popped[j]){ //循环判断当前栈顶元素是否出栈。栈不为空且当前popped元素与栈顶元素相等时进行出栈操作,否则继续入栈。
st.pop(); //st.pop()和j++相当于两个数组同时出栈
j++;
} //若无法出栈,则继续入栈
}
return st.empty(); //最后栈为空才是正常的
}
};
以上代码转自力扣官方题解
分类:
算法编程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具