20. 有效的括号|刷题打卡

简介: 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:• 左括号必须用相同类型的右括号闭合。• 左括号必须以正确的顺序闭合。

一、题目描述:


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

有效字符串需满足:


  • 左括号必须用相同类型的右括号闭合。
  • 左括号必须以正确的顺序闭合。


示例 1:

输入:s = "()"

输出:true


示例 2:

输入:s = "()[]{}"

输出:true


示例 3:

输入:s = "(]"

输出:false


提示:

1 <= s.length <= 10^4

s 仅由括号 '()[]{}' 组成


二、思路分析:


题目很简单,使用一个栈便可以解决。根据提示可知,字符串长度大于等于1,所以可以不考虑为0的情况。

  • 考虑'(','[','{'这三种情况,符合要求时,应该将其压栈;
  • 符合')','}',']'这三种情况时,应该判断此时的栈顶是否于闭合的三个字符相匹配。
  • 匹配。例如:栈顶为'(',当前字符为')'时,就应该将'('出栈
  • 不匹配。直接不满足要求

例子:


s = "{[]}"

网络异常,图片无法展示
|
最后,根据栈是否为空进行返回判断。如果不符合匹配条件可直接返回false。


三、AC 代码:



function isValid(s: string): boolean {
  let stack = [];
  stack[0] = s[0];
  for (let i = 1; i < s.length; i++) {
    switch (s[i]) {
      case "(":
        stack.push("(");
        break;
      case "[":
        stack.push("[");
        break;
      case "{":
        stack.push("{");
        break;
      case ")":
        if (stack[stack.length - 1] === "(") {
          stack.pop();
        } else {
          return false;
        }
        break;
      case "]":
        if (stack[stack.length - 1] === "[") {
          stack.pop();
        } else {
          return false;
        }
        break;
      case "}":
        if (stack[stack.length - 1] === "{") {
          stack.pop();
        } else {
          return false;
        }
        break;
    }
  }
  return stack.length ? false : true;
};


四、总结:


利用栈解决字符串匹配问题只是其中一种解决方法,还可以使用对象的key、value来解决。


作者:ClyingDeng

链接:https://juejin.cn/post/6947973790496194573

来源:稀土掘金

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

目录
相关文章
|
机器学习/深度学习 人工智能 自然语言处理
人工智能浪潮下,我们如何把握技术发展的脉搏
【8月更文挑战第20天】在人工智能的浪潮中,我们面临着前所未有的挑战和机遇。本文将通过深入分析人工智能技术的发展趋势、应用领域以及面临的挑战和机遇,探讨如何在这场技术革命中找到自己的定位和发展路径。
|
消息中间件 XML 缓存
美团点评智能支付核心交易系统的可用性实践(上)
背景 每个系统都有它最核心的指标。比如在收单领域:进件系统第一重要的是保证入件准确,第二重要的是保证上单效率。清结算系统第一重要的是保证准确打款,第二重要的是保证及时打款。我们负责的系统是美团点评智能支付的核心链路,承担着智能支付100%的流量,内部习惯称为核心交易。因为涉及美团点评所有线下交易商家、用户之间的资金流转,对于核心交易来说:第一重要的是稳定性,第二重要的还是稳定性。
美团点评智能支付核心交易系统的可用性实践(上)
|
Kubernetes 调度 Docker
|
4天前
|
数据采集 人工智能 自然语言处理
3分钟采集134篇AI文章!深度解析如何通过云无影AgentBay实现25倍并发 + LlamaIndex智能推荐
结合阿里云无影 AgentBay 云端并发采集与 LlamaIndex 智能分析,3分钟高效抓取134篇 AI Agent 文章,实现 AI 推荐、智能问答与知识沉淀,打造从数据获取到价值提炼的完整闭环。
383 93
|
5天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
5天前
|
SQL 人工智能 自然语言处理
Geo优化SOP标准化:于磊老师的“人性化Geo”体系如何助力企业获客提效46%
随着生成式AI的普及,Geo优化(Generative Engine Optimization)已成为企业获客的新战场。然而,缺乏标准化流程(Geo优化sop)导致优化效果参差不齐。本文将深入探讨Geo专家于磊老师提出的“人性化Geo”优化体系,并展示Geo优化sop标准化如何帮助企业实现获客效率提升46%的惊人效果,为企业在AI时代构建稳定的流量护城河。
389 156
Geo优化SOP标准化:于磊老师的“人性化Geo”体系如何助力企业获客提效46%