给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
思路:
因为如果字符串长度s为奇数,它一定不能闭合成功
用Stack创建栈stack,for循环来暴力枚举,如果为左括号,
则将其push到栈顶,如果为右括号,则进行匹配peek(),
取出栈顶元素进行匹配,若匹配成功将该元素删除用stack.pop()
若匹配失败返回false。
总结 :
还是要学会栈的工作原理,原理在上面,还有就是java中Stack类的一些方法。
class Solution{
public boolean isValid(String s){
if(s.length()%2==0){
Stack stack = new Stack<>();
for(int i=0;i
赠送:stack中的一些方法
1 boolean empty() 测试堆栈是否为空。 2 Object peek( ) 查看堆栈顶部的对象,但不从堆栈中移除它。 3 Object pop( ) 移除堆栈顶部的对象,并作为此函数的值返回该对象。 4 Object push(Object element) 把项压入堆栈顶部。 5 int search(Object element) 返回对象在堆栈中的位置,以 1 为基数。



