网站模板下载,给网站做认证,网站设计遵从的原则,个人接app推广单去哪里接这里用到了栈的思想 栈(stack)是限定仅在表尾进行插入或者删除的线性表。对于栈来说#xff0c;表尾端称为栈顶#xff08;top#xff09;#xff0c;表头端称为栈低#xff08;bottom#xff09;。不含元素的空表称为空栈。因为栈限定在表尾进行插入或者删除#xff0c… 这里用到了栈的思想 栈(stack)是限定仅在表尾进行插入或者删除的线性表。对于栈来说表尾端称为栈顶top表头端称为栈低bottom。不含元素的空表称为空栈。因为栈限定在表尾进行插入或者删除因此栈又被称为先进后出后进先出的线性表简称LIFO结构。
解题思路
特判过滤空字符串 创建一个辅助栈 遍历对每一个字符进行如下操作 若为左括号则往栈中存放右括号 若为右括号如果 栈为空 或者 该右括号与取出的栈顶元素不一样则返回false; 返回栈是否为空的状态
class Solution {public boolean isValid(String s) {//1.特判if(s.isEmpty()) return true;//2.创建辅助栈StackCharacter stack new Stack();//3.遍历for(char c : s.toCharArray()){if(c (){stack.push());}else if(c [){stack.push(]);}else if(c {){stack.push(});}else if(stack.isEmpty() || c ! stack.pop()){return false;}}//4.返回return stack.isEmpty();}}Java中的栈
1.Stack是Vector的一个子类它实现标准的后进先出堆栈。Stack只定义了创建空堆栈的默认构造方法 2.Stack类里面主要实现的有以下的几个方法
(1)boolean empty( )方法是判断堆栈是否为空。
(2)Object peek( )方法是返回栈顶端的元素但不从堆栈中移除它。
(3)Object pop( )方法是移除堆栈顶部的对象并作为此函数的值返回该对象。
(4)Object push (Object element)方法是把元素压入栈。
(5)int search(Object element)方法是返回对象在堆栈中的位置它是以1为基数。 3.Stack类boolean empty()方法 1.boolean empty()方法是判断堆栈是否为空就需要有一个变量来计算当前栈的长度若变量的值为0说明这个栈是空的