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(); } }
诸葛