• LeetCode刷题---有效的括号


    在这里插入图片描述
    这里用到了栈的思想
    栈(stack)是限定仅在表尾进行插入或者删除的线性表。对于栈来说,表尾端称为栈顶(top),表头端称为栈低(bottom)。不含元素的空表称为空栈。因为栈限定在表尾进行插入或者删除,因此栈又被称为先进后出(后进先出)的线性表(简称LIFO结构)。

    解题思路

    特判:过滤空字符串 创建一个辅助栈: 遍历,对每一个字符进行如下操作: 若为左括号,则往栈中存放右括号 若为右括号,如果 栈为空 或者
    该右括号与取出的栈顶元素不一样,则返回false; 返回栈是否为空的状态;

    class Solution {
        public boolean isValid(String s) {
            
         //1.特判
            if(s.isEmpty()) return true;
            //2.创建辅助栈
            Stack 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();
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    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,说明这个栈是空的

  • 相关阅读:
    vue3 - 前端 Vue 项目提交GitHub 使用Actions自动化部署
    泛型内容总结
    基于javaweb的房屋租赁后台管理系统
    谷歌竞价排名,谷歌关键词优化,谷歌搜索引擎优化-大舍传媒
    MTK OEM解锁步骤
    二阶系统时域响应
    23-数据结构-内部排序-归并排序
    文件或目录损坏且无法读取
    Meta 开源语音 AI 模型支持 1,100 多种语言
    T31开发笔记:MP4录制
  • 原文地址:https://blog.csdn.net/weixin_47109902/article/details/133975386