0    课程地址

https://coding.imooc.com/lesson/207.html#mid=13420

 

1    重点关注

1.1    leetCode官网介绍

https://leetcode.cn/problems/valid-parentheses/

可以写代码,可以看案例,可以竞赛

 


2    课程内容

2.1    实际实现方式有多种

用户不关心底层如何实现的

 

3    Coding

3.1    栈的应用案例:leetCode 20题 有效的括号

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

有效字符串需满足:

    左括号必须用相同类型的右括号闭合。
    左括号必须以正确的顺序闭合。
    每个右括号都有一个对应的相同类型的左括号。
示例 1:

输入:s = "()"
输出:true

示例 2:

输入:s = "()[]{}"
输出:true

示例 3:

输入:s = "(]"
输出:false

 

提示:

    1 <= s.length <= 104
    s 仅由括号 '()[]{}' 组成

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/valid-parentheses

 

  • 代码解析:
package com.company;

import java.util.Stack;

class Solution {
    public boolean isValid(String s) {

        Stack<Character> stackFirst = new Stack<>();
        for(int i = 0;i<s.length();i++){
            char c = s.charAt(i);
            if('('==c||'['==c||'{'==c){
                stackFirst.push(c);
            }else{
                if(stackFirst.isEmpty()){
                    return false;
                }

                char topChar = stackFirst.pop();
                if(')'==c&&'('!=topChar){
                    return false;
                }else if(']'==c&&'['!=topChar){
                    return false;
                }else if('}'==c&&'{'!=topChar){
                    return false;
                }
            }
        }
        return stackFirst.isEmpty();

    }
}

 

 

 

 

posted on 2022-10-19 11:05  菜鸟乙  阅读(21)  评论(0编辑  收藏  举报

目录导航