欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

栈和栈的应用

程序员文章站 2022-03-29 23:28:50
...

1.基础知识

  • 栈也是一种线性结构
  • 相比数组,栈对应的操作是数组的子集
  • 只能从一端添加元素,也只能从一端取出元素。
  • 这一端称为栈顶。
  • 后进先出(LIFO)

2.栈的应用

  • 无处不在的Undo操作(撤销)

  • 程序调用的系统栈

    栈和栈的应用

3.栈的实现

栈和栈的应用

4.Stack应用

LeetCode 20.有效的括号

给定一个只包括 '('')''{''}''['']' 的字符串,判断字符串是否有效。

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。

注意空字符串可被认为是有效字符串。


import java.util.Stack;
public class IsValidClass {
    public boolean isValid(String s) {
        if (s==null||s.isEmpty()==true)
            return true;
        char[] charArray = s.toCharArray();
        Stack<Character> stack=new Stack<>();

        for (int i=0;i<charArray.length;i++){
            char ch=charArray[i];
            if (ch=='('||ch=='['||ch=='{')
                stack.push(ch);
            else if (stack.isEmpty()||(!((ch==')'&&stack.pop()=='(')||(ch==']'&&stack.pop()=='[')||(ch=='}'&&stack.pop()=='{'))))
                return false;
        }
        if (stack.isEmpty())
            return true;
        return false;
    }
}
相关标签: