首页 > 试题广场 >

有效括号序列

[编程题]有效括号序列
  • 热度指数:311957 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列
括号必须以正确的顺序关闭,"()"和"()[]{}"都是合法的括号序列,但"(]""([)]"不合法

数据范围:字符串长度
要求:空间复杂度 ,时间复杂度
示例1

输入

"["

输出

false
示例2

输入

"[]"

输出

true
头像 鸠摩罗什
发表于 2021-07-18 19:57:47
精华题解 描述        给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列括号必须以正确的顺序关闭,"()"和"()[]{}&quo 展开全文
头像 牛客题解官
发表于 2022-04-22 12:16:08
精华题解 题目主要信息: 给定一个只包含大中小左右括号的字符串,判断其中括号是否合法 大中小括号的数学顺序与合法无关,只需要每种左括号在右边有相应匹配的右括号即可,不可交叉匹配,应该是括号嵌套 举一反三: 学习完本题的思路你可以解决如下题目: BM49. 表达式求值 方法:栈(推荐使用) 知识点:栈 栈是 展开全文
头像 Maokt
发表于 2021-07-14 11:15:08
精华题解 算法思想一:栈+哈希表 解题思路: 算法流程 1、构建哈希表 k,其中key为 右括号,value为左括号 2、遍历字符串     1、判断字符是否在 k.values() 中;     &nb 展开全文
头像 未来0116
发表于 2021-07-13 12:12:38
精华题解 一.题目描述NC52括号序列题目链接:https://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2?tpId=196&&tqId=37083&rp=1&ru=/activity/oj&qr 展开全文
头像 咕咕鸡思密达
发表于 2020-11-19 15:19:31
1.压栈和取栈'(','[','{' 这三个就压栈')',']','}' 这三个就取栈,取栈时判断一下是不是对应的括号,如果是就取栈成功,不是就不能取。这样最后看栈是不是为空,不为空就说明顺序不正确 2.字符替换 boolean flag = true; while( 展开全文
头像 数据结构和算法
发表于 2021-03-19 09:00:22
要判断括号的有效性,左括号必须和右括号相对应。如果是有效括号,并且他们中间还有括号,那么他们必须也是有效的,所以最简单的一种方式就是使用栈来解决。 我们遍历字符串中的所有字符 1,如果遇到了左括号,就把对应的右括号压栈(比如遇到了字符'(',就把字符')'压栈)。2,如果遇到了右括号 1)查看 展开全文
头像 _Pure_white_
发表于 2020-11-16 18:53:40
用字典简化代码量 class Solution: def isValid(self , s ): k = {'}':'{', ')':'(', ']':'[' } stack = [] for a in s: if a 展开全文
头像 王清楚
发表于 2020-11-19 12:27:23
题目中给出的字符串仅包含字符'(',')','{','}','['和']',对字符串中的每一个字符进行遍历,如果是右括号的话,需要看一下栈顶元素是不是和它匹配的左括号。如果是的话,那这两个括号是一对,让栈顶元素出栈不满足配对条件的话,就让该元素进栈如果字符串是一个合法的括号序列,那么整个字符串遍历完 展开全文
头像 萨根的喷火龙
发表于 2021-10-21 17:30:06
注意这里,not [],not一个空列表,返回的是True;not [1,2],not一个非空列表,返回是False。这里是为了检测是否是空列表 # # # @param s string字符串 # @return bool布尔型 # class Solution: def isVali 展开全文
头像 牛客564152510号
发表于 2022-06-01 11:25:31
/**   *    * @param s string字符串    * @return bool布尔型   */ function isValid( s ) {     // write code here   展开全文
头像 我和我
发表于 2021-11-07 22:35:01
public class Solution { /** * * @param s string字符串 * @return bool布尔型 */ public boolean isValid (String s) { // w 展开全文
头像 honokawings
发表于 2022-03-20 02:18:11
C语言数组实现栈 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return bool布尔型 * * C语言声明定义全局变量请加上static,防止重复定义 */ char trans(cha 展开全文
头像 过河卒3
发表于 2022-08-26 16:02:26
class Solution:     def isValid(self , s: str) -> bool:         # write code here         while s 展开全文
头像 Galaxy_Lee
发表于 2022-03-15 13:11:46
解题思路: 非常经典的栈的使用案例 - 括号匹配,只不过这道题难度降低了很多 判断是左括号就入栈 碰到右括号的时候,从栈顶弹出一个元素,看右括号是否与栈顶元素的左括号匹配,不匹配就返回False 整个入栈出栈结束以后看栈内是否还有元素,还有元素就说明匹配失败 # 代码中的类名、方法名、参数名已经 展开全文

问题信息

难度:
451条回答 34027浏览

热门推荐

通过挑战的用户

查看代码