首页 > 其他分享 >栈的使用以及括号匹配扩展

栈的使用以及括号匹配扩展

时间:2022-10-26 21:07:52浏览次数:53  
标签:匹配 string 扩展 else 括号 parenthesis Star empty Left


678. Valid Parenthesis String

Medium

68824FavoriteShare

Given a string containing only three types of characters: '(', ')' and '*', write a function to check whether this string is valid. We define the validity of a string by these rules:

  1. Any left parenthesis​​'('​​​ must have a corresponding right parenthesis​​')'​​.
  2. Any right parenthesis​​')'​​​ must have a corresponding left parenthesis​​'('​​.
  3. Left parenthesis​​'('​​​ must go before the corresponding right parenthesis​​')'​​.
  4. ​'*'​​​ could be treated as a single right parenthesis​​')'​​​ or a single left parenthesis​​'('​​ or an empty string.
  5. An empty string is also valid.

 

Example 1:


Input: "()" Output: True


 

Example 2:


Input: "(*)" Output: True


 

Example 3:


Input: "(*))" Output: True


class Solution {
public:
bool checkValidString(string s) {
stack<int> Left;
stack<int> Star;
for(int i = 0;i < s.length();i ++){
if(s[i] == '('){
Left.push(i);
}
else if(s[i] == '*'){
Star.push(i);
}
else{
if(!Left.empty()){
Left.pop();
}
else if(!Star.empty()){
Star.pop();
}
else{
return false;
}
}
}
while(!Left.empty() && !Star.empty()){
if(Left.top() > Star.top()){
return false;
}
Left.pop();Star.pop();
}
if(!Left.empty()){return false;}
else{return true;}
}
};

 

标签:匹配,string,扩展,else,括号,parenthesis,Star,empty,Left
From: https://blog.51cto.com/u_13121994/5798503

相关文章

  • 括号匹配
     合法的括号匹配序列被定义为:1.空串""是合法的括号序列2.如果"X"和"Y"是合法的序列,那么"XY"也是一个合法的括号序列3.如果"X"是一个合法的序列,那么"[X]"也是一个......
  • 字符串--通配符*匹配
    44. WildcardMatchingHard120177FavoriteShareGivenaninputstring(​​s​​​)andapattern(​​p​​​),implementwildcardpatternmatchingwithsupportf......
  • 计算器(带括号)
    #include<iostream>//forcoutendl#include<stack>//forstack#include<string>//forstring#include<vector>//forvector#include<algorithm>//forpow()usingname......
  • Gitea 1.18 功能前瞻(其三):增强文本预览效果、继续扩展软件包注册中心、增强工单实用功
    今天是10月26日星期三,Gitea周期性地发布了1.18的第一个RC0版本,在此阶段会收集一些功能和使用上的问题,随后还会发布RC1,新功能的完整性和健壮性会逐步趋近正式版......
  • 括号配对问题
    描述现在,有一行括号序列,请你检查这行括号是否配对。第一行输入一个数N(0输出每组输入数据的输出占一行,如果该字符串中所含的括号......
  • IPtables的匹配条件
    iptables的匹配条件基本匹配条件:直接能用的条件扩展匹配条件:需要调用对应的扩展模块iptables的基本匹配条件源地址目标地址网卡名称协议类型源地......
  • Scala-模式匹配
    模式匹配简介类似于java中switch当数据满足某一个分支时,执行完毕后,就直接跳出case分支类似于default语言,分支匹配其实就是顺序匹配如果数据没有匹配任何规则......
  • CSPS2019 括号树 题解
    链的部分分我们设f[i]表示以i结尾的括号序列有多少个,那么i的实际答案就是f的前缀和显然,所有左括号和不能匹配的右括号的f均为0对于每一个能匹配的右括号i,我们找到与之......
  • javascript 获取本机ip chrome 谷歌浏览器 extension 谷歌扩展
    代码一:if(typeofwindow!='undefined'){varRTCPeerConnection=window.RTCPeerConnection||window.mozRTCPeerConnection||window.webkitRTCPeerConnect......
  • CSS基础选择器和扩展选择器
    CSS-选择器-基础选择器分类:基础选择器:1.基础选择器1.id选择器:选择器具体的id属性值的元素,建议在一个html页面中id值唯一......