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

【Leetcode】【240407】678. Valid Parenthesis String

It’s time to go back home, today’s in tomorrow lol
BGM:无地自容(黑豹乐队《黑豹》)

Descripition

Given a string s containing only three types of characters: ‘(’, ‘)’ and ‘*’, return true if s is valid.

The following rules define a valid string:

  • Any left parenthesis ‘(’ must have a corresponding right parenthesis’)'.
  • Any right parenthesis ‘)’ must have a corresponding left parenthesis ‘(’.
  • Left parenthesis ‘(’ must go before the
    corresponding right parenthesis ‘)’.
  • ‘*’ could be treated as a singleright parenthesis ‘)’ or a single left parenthesis ‘(’ or an empty string “”.

Solution

Caution: Maybe take care of the pair order of ‘*’? Plz feel free to use queue instead and combine with stack.

Code

class Solution {
public:bool checkValidString(string s){typedef struct pair{char chat;int num;};stack<pair>pat;queue<pair>star;for(int i=0;i<s.length();++i){pair mid;mid.chat=s[i];mid.num=i;if(s[i]=='(') pat.push(mid);else if(s[i]=='*') star.push(mid);else{if(pat.empty()&&star.empty()) return false;else if(!pat.empty()) pat.pop();else if(pat.empty()&&(!star.empty())) star.pop(); }}stack<pair>new_star;while(!star.empty()){new_star.push(star.front());star.pop();}while(!pat.empty()){pair left=pat.top();if(!new_star.empty()){pair right=new_star.top();if(right.num<left.num) return false;else{new_star.pop();pat.pop();}}else return false;}return true;}
};

相关文章:

【Leetcode】【240407】678. Valid Parenthesis String

It’s time to go back home, today’s in tomorrow lol BGM&#xff1a;无地自容(黑豹乐队《黑豹》) Descripition Given a string s containing only three types of characters: ‘(’, ‘)’ and ‘*’, return true if s is valid. The following rules define a valid…...

移动平台相关(安卓)

目录 安卓开发 Unity打包安卓 ​编辑​编辑 BuildSettings PlayerSettings OtherSettings 身份证明 配置 脚本编译 优化 PublishingSettings 调试 ReMote Android Logcat AndroidStudio的调试 Java语法 ​编辑​编辑​编辑 变量 运算符 ​编辑​编辑​编辑​…...

[C++][算法基础]食物链(并查集)

动物王国中有三类动物 A,B,C&#xff0c;这三类动物的食物链构成了有趣的环形。 A 吃 B&#xff0c;B 吃 C&#xff0c;C 吃 A。 现有 N 个动物&#xff0c;以 1∼N 编号。 每个动物都是 A,B,C 中的一种&#xff0c;但是我们并不知道它到底是哪一种。 有人用两种说法对这 N…...

深入理解Transformer的位置编码机制

Transformer架构由于其独特的设计&#xff0c;不像传统的循环神经网络&#xff08;RNN&#xff09;或卷积神经网络&#xff08;CNN&#xff09;&#xff0c;它无法自然地处理序列数据中的顺序信息。为了使模型能够理解序列中各元素的位置关系&#xff0c;Transformer引入了一种…...

10分钟上手:MySQL8的Json格式字段使用总结干货

一、关于效率和适用范围 尽管官方承诺Json格式字段采用了空间换时间的策略&#xff0c;比Text类型来存储Json有大幅度的效率提升。但是Json格式的处理过程仍然效率不及传统关系表&#xff0c;所以什么时候用Json格式字段尤为重要。 只有我们确定系统已经能精确定位到某一行&am…...

OpenCV 4.9基本绘图

返回&#xff1a;OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV使用通用内部函数对代码进行矢量化 下一篇:使用OpenCV4.9的随机生成器和文本 ​目标 在本教程中&#xff0c;您将学习如何&#xff1a; 使用 OpenCV 函数 line() 画一…...

显示器and拓展坞PD底层协商

简介&#xff1a; PD显示器或者PD拓展坞方案中&#xff0c;连接显示设备的Type-C端口主要运行在DRP模式&#xff0c;在此模式下可以兼容Source&#xff08;显卡&#xff09;、Sink&#xff08;信号器&#xff09;、DRP&#xff08;手机、电脑&#xff09;模式的显示设备。 Sou…...

如何利用Flutter将应用成功上架至iOS平台:详细指南

引言 &#x1f680; Flutter作为一种跨平台的移动应用程序开发框架&#xff0c;为开发者提供了便利&#xff0c;使他们能够通过单一的代码库构建出高性能、高保真度的应用程序&#xff0c;同时支持Android和iOS两个平台。然而&#xff0c;完成Flutter应用程序的开发只是第一步…...

【运输层】网络数据报协议 UDP

目录 1、UDP 的特点 2、UDP 的首部格式 UDP 只在 IP 协议之上增加了很少的一些功能&#xff0c;比如复用、分用以及差错检测等。 1、UDP 的特点 UDP是无连接的&#xff0c;即发送数据之前不需要建立连接&#xff0c;因此减少了开销和发送数据之前的时延。 UDP使用尽最大努力…...

数据结构(初阶):顺序表实战通讯录

前言 数据结构&#xff08;初阶&#xff09;第一节&#xff1a;数据结构概论-CSDN博客 数据结构&#xff08;初阶&#xff09;第二节&#xff1a;顺序表-CSDN博客 本文将以C语言和顺序表实现通讯录基础管理&#xff0c;实现功能包括增、删、改、查等&#xff0c;在实现相关功能…...

Outlook会议邀请邮件在答复后就不见了

时常会有同事找到我说&#xff0c;Outlook答复会议邀请邮件后收件箱就找不到会议邀请的邮件了。 这其实是Outlook的的一个机制&#xff0c;会把应答后的会议邀请邮件从收件箱自动删除&#xff0c;到已删除的邮件那里就能找到。如果不想要自动删除&#xff0c;改一个设置即可。…...

【C++】list模拟实现

个人主页 &#xff1a; zxctscl 如有转载请先通知 文章目录 1. 前言2. list源码3. 初始化3.1 构造3.2 拷贝构造3.3 赋值3.4 析构 4. 迭代器4.1 后置加加和前置加加4.2 后置减减和前置减减4.3 解引用4.4 &#xff01;和4.5 begin 和 end4.6 const迭代器4.7 迭代器优化 5. Modifi…...

ETL工具-nifi干货系列 第八讲 处理器PutDatabaseRecord 写数据库(详细)

1、本节通过一个小例子来讲解下处理器PutDatabaseRecord&#xff0c;该处理器的作用是将数据写入数据库。 如下流程通过处理器GenerateFlowFile 生成数据&#xff0c;然后通过处理器JoltTransformJSON转换结构&#xff0c;最后通过处理器PutDatabaseRecord将数据写入数据库。如…...

【MySQL】如何判断一个数据库是否出问题

在实际的应用中&#xff0c;其实大多数是主从结构。而采用主备&#xff0c;一般都需要一定的费用。 对于主备&#xff0c;如果主机故障&#xff0c;那么只需要直接将流量打到备机就可以&#xff0c;但是对于一主多从&#xff0c;还需要将从库连接到主库上。 对于切换的操作&a…...

SQLite数据库的性能问题并不是单纯地由数据量的大小决定的,而是受到多种因素的综合影响。以下是一些可能导致SQLite性能问题的因素

SQLite数据库的性能问题并不是单纯地由数据量的大小决定的&#xff0c;而是受到多种因素的综合影响。以下是一些可能导致SQLite性能问题的因素&#xff1a; 数据量&#xff1a;当SQLite数据库中的数据量增长到一定程度时&#xff0c;查询、插入和更新等操作可能会变得缓慢。这…...

Blender怎么样启动默认移动和Cavity效果

在使用Blender的过程中&#xff0c;有一些特殊的技巧很重要。 比如默认地设置blender打开时&#xff0c;就是移动物体&#xff0c;这样怎么样设置的呢&#xff1f; 需要在界面里打开下面的菜单: 这样就找到默认设置的地方&#xff0c;把下面的移动勾选起来&#xff0c;这样点…...

Android 解决TextView多行滑动与NestedScrollView嵌套滑动冲突的问题

关键计算地方: 1.当前是上滑动还是下滑动(相对于屏幕) ,使用ev.getRawY()获得当前滑动位置在屏幕哪个地方 2. 计算文本客滑动到哪里即可停止, (行高*总文本行数)- (行高 * 最多显示行数) int sum getLineHeight() * getLineCount() - getLineHeight() * getMaxLines(); …...

Laravel 开发Api规范

一&#xff0c;修改时区 配置 config/app.php 文件 // 时区修改&#xff0c;感觉两者皆可&#xff0c;自己根据实际情况定义 timezone > PRC, // 大陆时间二&#xff0c;设置 Accept 头中间件 accept头即为客户端请求头&#xff0c;做成中间件来使用。Accept 决定了响应返…...

蓝色wordpress外贸建站模板

蓝色wordpress外贸建站模板 https://www.mymoban.com/wordpress/7.html...

windos环境,使用docker容器运行项目的,新增外部访问地址配置

对于运行在 Docker 容器中的项目&#xff0c;你需要在容器内部编辑 resolv.conf 文件。以下是一种常见的方法&#xff1a; 进入正在运行的 Docker 容器&#xff1a;docker exec -it [container_id] bash其中 [container_id] 是你正在运行的 Docker 容器的 ID。 在容器内部使…...

Python项目集成Taotoken实现多模型自动降级路由

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Python项目集成Taotoken实现多模型自动降级路由 在构建依赖大模型服务的应用时&#xff0c;服务的稳定性至关重要。单一模型端点可…...

从Struts2漏洞看Java Web安全:一个OGNL表达式注入引发的十年“血案”

OGNL表达式注入&#xff1a;Struts2框架安全漏洞的十年演进与启示 2006年&#xff0c;当Struts2作为Struts框架的下一代产品首次亮相时&#xff0c;开发者社区对其寄予厚望。这个基于MVC架构的Java Web框架承诺提供更简洁的代码结构和更强大的功能扩展性。然而&#xff0c;很少…...

XXMI-Launcher:多游戏Mod管理平台的终极指南

XXMI-Launcher&#xff1a;多游戏Mod管理平台的终极指南 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher XXMI-Launcher是一款专为热门游戏设计的Mod管理平台&#xff0c;支持《原…...

树莓派NOOBS安装指南:从SD卡准备到系统配置全流程详解

1. 项目概述&#xff1a;为什么选择NOOBS作为树莓派入门首选如果你刚拿到一块树莓派&#xff0c;看着这块小小的电路板&#xff0c;第一反应可能是兴奋&#xff0c;紧接着就是困惑&#xff1a;我该怎么让它“活”过来&#xff1f;对于嵌入式开发、物联网原型搭建&#xff0c;甚…...

第一卷第4章:接口而非实现编程

第一卷第4章:接口而非实现编程 目录介绍 00.先回答上篇思考题 0.1 上篇遗留三道题 0.2 云迁移6万行代码 0.3 五次反转补锅 0.4 灵魂五连问 01.从一个搬迁切入 1.1 上云搬迁案例...

高速SerDes技术解析:从差分传输到时钟恢复的硬件设计实战

1. 从并行到串行&#xff1a;高速通信的基石SerDes在数字电路的世界里&#xff0c;数据最初大多以并行的形式存在&#xff0c;比如我们熟悉的32位或64位数据总线。但当我们需要把数据从一个芯片发送到另一个芯片&#xff0c;或者从一块电路板传到另一块&#xff0c;尤其是在高速…...

探秘游戏安全:驱动级防护与图标守护的开源宝藏

探秘游戏安全&#xff1a;驱动级防护与图标守护的开源宝藏 【下载地址】驱动保护进程与游戏破图标技术实现代码 驱动保护进程与游戏破图标技术实现代码 项目地址: https://gitcode.com/open-source-toolkit/beb83 随着电子竞技的兴起和游戏产业的繁荣&#xff0c;游戏安…...

RT-Thread Studio自定义工程路径踩坑记:解决‘Error retrieving output from the rttconfig server’报错

RT-Thread Studio自定义工程路径踩坑指南&#xff1a;从报错到原理的深度解析 第一次在RT-Thread Studio中尝试将项目放在D盘的自定义文件夹时&#xff0c;那个刺眼的红色报错框让我愣了几秒——"Error retrieving output from the rttconfig server"。控制台里密密麻…...

Arm Compiler 6.16LTS功能安全认证语言扩展解析

1. Arm Compiler for Embedded FuSa 6.16LTS语言扩展支持现状解析在功能安全关键型嵌入式系统开发中&#xff0c;编译器工具链的认证状态直接关系到最终产品的合规性。Arm Compiler for Embedded FuSa 6.16LTS作为经过功能安全认证的工具链&#xff0c;其语言扩展支持情况需要开…...

本地部署 SQLite 数据库管理工具 SQLite Web 并实现外部访问( Linux 版本)

SQLite Web 是一款轻量级的、基于 Web 的图形化界面工具&#xff0c;用于浏览和管理 SQLite 数据库文件&#xff0c;它通常以一个独立的可执行文件或 Python 包的形式存在&#xff0c;让用户可以通过浏览器方便地查看、查询、编辑和管理 .db 或 .sqlite 等 SQLite 数据库。本文…...