【剑指offer】面试题31:栈的压入,弹出序列
初始化一个栈。 遍历弹出序列中的每个元素。 对于每个弹出元素,检查栈顶是否等于该元素。 如果栈顶元素等于当前弹出元素,弹出栈顶。 如果栈顶元素不等于当前弹出元素,继续压栈处理后续的压入元素。 如果在压栈过程中没有找到匹配的元素,返回false。 处理完所有弹出元素后,返回true。
发布日期:2021-04-30 21:02:30
浏览次数:112
分类:精选文章
本文共 992 字,大约阅读时间需要 3 分钟。
要判断一个弹出的序列是否符合栈的弹出顺序,可以通过模拟栈的操作来验证。具体步骤如下:
以下是实现代码:
public class ti31 { public static boolean IsPopOrder(int push[], int pop[]) { Stack stack = new Stack<>(); int i = 0; while (i < pop.length) { if (!stack.isEmpty() && stack.peek() == pop[i]) { stack.pop(); i++; } else if (i < push.length) { stack.push(push[i]); i++; } else { return false; } } return true; } public static void main(String[] args) { int push[] = {1,2,3,4,5}; int pop[] = {4,5,3,2,1}; System.out.println(IsPopOrder(push, pop)); }} 代码解释:
- 初始化栈
stack。 - 遍历弹出序列
pop中的每个元素pop[i]。 - 检查栈顶是否等于当前元素,如果是,弹出栈顶并继续处理下一个元素。
- 如果栈顶不等于当前元素且还未处理完压入序列,继续压栈当前元素。
- 如果没有找到匹配的元素且压入序列已处理完,返回false。
- 处理完所有弹出元素后,返回true。
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2026年05月31日 08时35分20秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
pickle
2023-03-02
Pickle thread.lock(Pymongo)
2023-03-02
pickle模块
2023-03-02
qYKVEtqdDg
2023-03-02
pid控制
2023-03-02
PID控制介绍-ChatGPT4o作答
2023-03-02
PID控制器数字化
2023-03-02
Qwen-VL项目使用指南
2023-03-02
PIESDKDoNet二次开发配置注意事项
2023-03-02
PIGS POJ 1149 网络流
2023-03-02
PIL Image对图像进行点乘,加上常数(等像素操作)
2023-03-02
PIL Image转Pytorch Tensor
2023-03-02
PIL&QOOT;IOERROR:带有大图像的图像文件被截断(&Q)
2023-03-02
PIL.Image、cv2的img、bytes相互转换
2023-03-02
PIL.Image进行图像融合显示(Image.blend)
2023-03-02
pilicat-dfs 霹雳猫-分布式文件系统
2023-03-02
Pillow lacks the JPEG 2000 plugin
2023-03-02
SpringBoot之ElasticsearchRestTemplate常用示例
2023-03-02
ping 全网段CMD命令
2023-03-02
ping 命令的七种用法,看完瞬间成大神
2023-03-02