其他分享
首页 > 其他分享> > 9.16 有效的括号 简单

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