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 有效的括号 简单的主要内容,如果未能解决你的问题,请参考以下文章

921. 使括号有效的最少添加 : 简单成对括号问题

leetcode-简单-栈-有效的括号

Leetcode题目20.有效的括号(简单)

领扣简单版--有效的括号(Valid Parentheses)

LintCode Python 简单级题目 423.有效的括号序列

20. 有效的括号简单栈