蓝桥杯-Stack
Stack实例化步骤
1导包,导入java.util.*
2实例化对象,格式如下
Stack<引用数据类型> stack=new Stack<>();
Stack特点:先进后出。比如1,2,3依次入栈,出栈顺序就是3,2,1
常用方法
1 Object push(Object element)
把对象压入堆栈顶部。
2 Object pop()
移除堆栈顶部的对象,并作为此函数的值返回该对象。
3 Object peek()
查看堆栈顶部的对象,但不把它从堆栈中移除它
4 boolean isEmpty()
测试堆栈是否为空
package AAA; import java.util.Stack; public class Main4 { public static void main(String args[]) { Stack<Integer> stack=new Stack<>(); stack.push(2); stack.push(3); stack.push(1); stack.peek(); System.out.println(stack.peek()); stack.pop();//删除顶部对象,并将该对象的值返回 System.out.println(stack.pop()); stack.peek();//仅查看顶部对象,不删除 System.out.println(stack.peek()); } }
例题实战
题目 小蓝有一个长度为n的括号串,括号串仅由字符(、)构成,请你帮它判断以下该括号是否合法,合法请输出Yes,反之输出No
合法括号序列:
若s是合法括号序列,则(s)也是合法括号序列。
若s,t都是合法括号序列,则st也是合法括号序列
例如()(),(()),(())()军事合法括号序列。
示例
输入10 (()(()))()
输出Yes
package AAA; import java.util.*; public class Main3 { public static void main(String args[]) { Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); char []a=scanner.next().toCharArray();//转成数组 Stack<Character> stack=new Stack<>(); boolean c=true; for(char x:a) { if(x=='(') {//如果是做左括号的情况 stack.push(x);//入栈 }else {//如果是右括号的情况 if(!stack.isEmpty()){//栈内存在左括号与它对应 stack.pop();//出栈 } else {//栈内没有左括号与之对应 c=false; break; } } } //if(stack.isEmpty()==0) c;else c=false; if(!stack.isEmpty()) c=false; if(c) System.out.println("Yes"); else System.out.println("No"); } }
原文地址:https://blog.csdn.net/weixin_62944148/article/details/136542945
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!