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、时间复杂度很高,以后再修改。
标签:case,示例,9.16,break,括号,flag,&&,简单,save 来源: https://www.cnblogs.com/wasi-991017/p/11530768.html