当前位置: 首页 > 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/a/284859.html

相关文章:

  • JVM详解:JVM的系统架构
  • 【Pikachu】目录遍历实战
  • 【Vue】Vue3.0(十九)Vue 3.0 中一种组件间通信方式-自定义事件
  • ABC334
  • JQuery封装的ajax
  • 字符及字符串(ASCII编码系统)
  • 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项目到本地,知识小记,后续再改】