java判断出栈顺序是否正确
作者:互联网
2009-12-04
我们知道栈是一种先进后出的数据容器。当一个栈的输入序列是递增序列(例如a,b,c,d),并且在进栈操作时,允许退栈操作,则输出的序列可能有多种形式(例如:d,c,b,a或a,c,b,d等)。但是却肯定不会出现如下出栈序列:a,d,b,c或d,a,b,c等。在输入序列为递增序列的假设下,请编写一个算法判断输入的字符串表示的出栈序列是否为正确的出栈序列。例如:输入的字符序列为dcba,则返回值为true;若输入的字符序列为adbc,则返回的值为false。
一个简单的堆栈:
public class SqStack {
private int size;
private Object[] datas;
private int top;
public SqStack(){
this(50);
size = 50;
}
public SqStack(int size) {
this.size = size;
datas = new Object[size];
top = -1;
}
public void push(Object data){
//...
}
public Object pop(){
//...
}
public Object getTop(){
//...
}
public boolean isEmpty(){
//...
}
}
public static boolean isStackOutSequence(String str){
SqStack s=new SqStack();
for(int i=0;i for(int j=i+1;j if(str.charAt(j) s.push(str.charAt(j)); } while(!s.isEmpty(){ char c=(Character)s.pop(); if(!s.isEmpty()&&c>(Character)s.pop()) return false; } } return true;
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
拒绝硬编码!利用 Java SPI 打造一个可插拔的代码解析器
给 Spring Boot 接口加了幂等保护:Token 机制 + 结果缓存,一个注解搞定
一站式了解接口防刷(限流)的基本操作
ThreadForge v1.1.0 发布:让 Java 并发更接近 Go 的开发体验
各版本JDK对比:JDK 21 特性详解
JVM 内存溢出排查
LangChain4j Prompt 提示词工程
彻底重绘Spring Boot性能版图,资源占用缩减80%
百度智能云模型接入
CompletableFuture深度解析:异步编程与任务编排的实现
AI精选
