9.16 有效的括号 简单

99封情书 提交于 2019-11-29 19:58:59

 

 题目:

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

有效字符串需满足:

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。

示例 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、时间复杂度很高,以后再修改。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!