9.16 有效的括号 简单
Posted wasi-991017
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了9.16 有效的括号 简单相关的知识,希望对你有一定的参考价值。
题目:
给定一个只包括 ‘(‘,‘)‘,‘‘,‘‘,‘[‘,‘]‘ 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: "()"
输出: true
示例 2:
输入: "()[]"
输出: true
示例 3:
输入: "(]"
输出: false
示例 4:
输入: "([)]"
输出: false
示例 5:
输入: "[]"
输出: true
代码:
1 import java.util.Stack; 2 class Solution 3 public boolean isValid(String s) 4 char[] brackets = s.toCharArray(); 5 Stack<Character> save = new Stack<Character>(); 6 int flag = 1; 7 for(int i = 0; i < brackets.length; i++) 8 switch(brackets[i]) 9 case ‘(‘: 10 case ‘‘: 11 case ‘[‘: 12 save.push(brackets[i]); 13 break; 14 case ‘)‘: 15 if(!save.empty() && save.peek() == ‘(‘) 16 save.pop(); 17 else flag = 0; 18 break; 19 case ‘‘: 20 if(!save.empty() && save.peek() == ‘‘) 21 save.pop(); 22 else flag = 0; 23 break; 24 case ‘]‘: 25 if(!save.empty() && save.peek() == ‘[‘) 26 save.pop(); 27 else flag = 0; 28 break; 29 30 31 if(save.empty() && flag == 1) return true; 32 else return false; 33 34
心得:
1、今天刚学了栈的理论,晚上回来尝试一下。
理论过程都能懂,就是java的语法不熟悉,上网搜了很多语法知识用上了,就过了。题目没有什么难度。
2、时间复杂度很高,以后再修改。
以上是关于9.16 有效的括号 简单的主要内容,如果未能解决你的问题,请参考以下文章
领扣简单版--有效的括号(Valid Parentheses)