当前位置: 首页 > article >正文

力扣2116.判断一个括号字符串是否有效

力扣2116.判断一个括号字符串是否有效

  • 双栈模拟

    • 一个锁栈,一个非锁栈
    • 遇到锁)时,优先匹配锁栈的(
  •   class Solution {
      public:
          bool canBeValid(string s, string locked) {
              if(s.size() % 2 != 0) return false;
              stack<int> free_stk;
              stack<int> lock_stk;
              for(int i=0;i<s.size();i++)
              {
                  if(locked[i] != '1')
                      free_stk.push(i);
                  else
                  {
                      if(s[i] == ')')
                      {
                          //优先匹配锁栈
                          if(!lock_stk.empty()) lock_stk.pop();
                          else if(!free_stk.empty()) free_stk.pop();
                          else return false;
                      }
                      else
                          lock_stk.push(i);
                  }
              }
              //最后处理所有锁的(
              //处理完剩下的非锁栈元素一定可以自己匹配完
              while(!free_stk.empty() && !lock_stk.empty())
              {
                  if(free_stk.top() < lock_stk.top()) return false;
                  free_stk.pop(),lock_stk.pop();
              }
              return lock_stk.empty();
          }
      };
    

http://www.kler.cn/news/284859.html

相关文章:

  • Qt_信号槽机制
  • 计算机网络概述(网络结构)
  • MYSQL——聚合查询
  • B树及其Java实现详解
  • 续:MySQL的半同步模式
  • APO 新发版支持Skywalking Agent接入
  • unity的问题记录(信息管理)
  • 【Java设计模式】责任链模式:构建强大的请求处理机制
  • 技术成神之路:设计模式(十二)模板方法模式
  • SQL存储过程:数据库编程的瑞士军刀
  • Java中的注解(Annotation)
  • 谷粒商城实战笔记-269~271-商城业务-订单服务-bug修改
  • Python3遍历文件夹下的文件
  • AI编码新时代:免费人工智能助手Blackbox AI
  • Spring Boot 集成 JdbcTemplate(盘它!)
  • 使用WSL在Windows上安装Linux
  • 【微信小程序】SpringBoot集成微信小程序(多小程序集成)
  • opencv/c++的一些简单的操作(入门)
  • 趣味算法------多重背包问题
  • 【拉取Git项目到本地,知识小记,后续再改】
  • EmguCV学习笔记 VB.Net 8.1 漫水填充法 floodFill
  • volatile 关键字
  • Mac 安装Hadoop教程
  • 【算法每日一练及解题思路】计算以空格隔开的字符串的最后一个单词的长度
  • Linux - 如何在 Linux 中使用`find` 命令
  • JAVA安全之Velocity模板注入刨析
  • 字和字节的区别?
  • 分享两个方法分析python打包exe
  • Cookie、Session、Token:三者的区别与应用
  • 【QNX+Android虚拟化方案】112 - 获取 88Q5152 Switch Port1、Port2 端口的主从模式 / 传输速率 / 链路状态