需要学习的知识
栈:在数据结构中,学过栈是一种先进后出的数据结构,java中用Stack表,示,stack的方法有
boolean isEmpty();//判断是否为空 空返回true
Object peek();//最外面的那个元素,但是不移出栈
Object pop( );//查看栈顶元素,并移除栈顶元素
Object push(Object element);//把某个元素放入栈中;
int search(Object element);//返回对象在栈中的位置;空栈为-1;
用栈创建对象
Stack<Integer> stack = new Stack<>();
Stack<Character> stack = new Stack<>();
一、题目描述
有效的括号:
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-parentheses
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
再读一遍题:左括号必须以正确的顺序闭合。
二、想法
看到这道题,没有什么想法,把string类型转换成字符串数组,然没有什么想法了,又看到这是道简单题,看了会不知道怎么下手,就看了下评论。
原来使用了栈的思想啊,这个以前也学过,但是没有用过,第一次在程序中接触。所以一开始有点不知道怎么做。
知道了使用这个数据结构,那就就开始想怎么用栈来解决这个问题。
- 新建一个栈;
- 遍历string 中的每个字符串ch;
- 如果ch=左括号,就将右括号压入栈中;
- 当遍历了左括号后,后面还有些右括号,此时遍历他们就看