leetcode算法每天一题 020: 有效的括号(c++ stack<> queue<>的简单使用 )
创始人
2024-04-07 15:19:37
0

题目描述

给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。
class Solution {
public:bool isValid(string s) {}
};

C++ 栈(stack)使用简述

stack s;定义一个参数类型为 type 的栈
s.size()返回栈中元素数量
s.push()压栈,无返回值
s.emplace()压栈,无返回值(与push的区别下面细说)
s.pop()栈顶元素出栈,不返回元素,无返回值
s.top()返回栈顶元素,该元素不出栈
s.empty()判断栈是否为空,是返回 true

C++ 语言中 queue 的常见用法详解

queue q
push()在队尾插入一个元素
pop()删除队列第一个元素
size()返回队列中元素个数
empty()如果队列空则返回true
front()返回队列中的第一个元素
back()返回队列中最后一个元素

解(正经解法)


class Solution {
public:bool isValid(string s) {stack mystack;char now;char instack;int n = s.length();for(int i=n;i>0;i--){now = s[i-1];if(!mystack.empty()){//如果栈非空instack =  mystack.top();//读取一个元素}else{instack = NULL;//else 是对应这个用例 "[[[]"}if( now =='(' && instack ==')'){mystack.pop();}else if( now =='{' && instack =='}'){mystack.pop();}else if( now =='[' && instack ==']'){mystack.pop();}else{mystack.push(now);}}return mystack.empty();}
};

其他解法

class Solution:def isValid(self, s):while '{}' in s or '()' in s or '[]' in s:s = s.replace('{}', '')s = s.replace('[]', '')s = s.replace('()', '')return s == ''
class Solution {public boolean isValid(String s) {int length = s.length() / 2;for (int i = 0; i < length; i++) {s = s.replace("()", "").replace("{}", "").replace("[]", "");}return s.length() == 0;}
}
class Solution {
public:bool isValid(string s) {if (s.size() % 2 != 0) return false; // 如果s的长度为奇数,一定不符合要求stack st;for (int i = 0; i < s.size(); i++) {if (s[i] == '(') st.push(')');else if (s[i] == '{') st.push('}');else if (s[i] == '[') st.push(']');// 第三种情况:遍历字符串匹配的过程中,栈已经为空了,没有匹配的字符了,说明右括号没有找到对应的左括号 return false// 第二种情况:遍历字符串匹配的过程中,发现栈里没有我们要匹配的字符。所以return falseelse if (st.empty() || st.top() != s[i]) return false;else st.pop(); // st.top() 与 s[i]相等,栈弹出元素}// 第一种情况:此时我们已经遍历完了字符串,但是栈不为空,说明有相应的左括号没有右括号来匹配,所以return false,否则就return truereturn st.empty();}
};

相关内容

热门资讯

名人名言快!·谢谢 名人名言快!·谢谢如果你给我一个机会,我会给你一个惊喜
《赠汪伦》的赏析 《赠汪伦》的赏析要短但要精赠汪伦唐 李白 李白乘舟将欲行, 忽闻岸上踏歌声。 桃花潭水深千尺, 不及...
动若参商故事? 动若参商故事?古书左传上记载:在远古的时代,有一个叫高辛氏的人,又叫帝喾,他的儿子中,老大叫阏伯,还...
来月经时可以看恐怖片吗? 来月经时可以看恐怖片吗?听说不能看,为什么不能有没有科学的解释还有为什么不能吃辣月经可以防鬼,《尸气...
IBM公司的董事长兼总经理托马... IBM公司的董事长兼总经理托马斯·沃森(小沃森)在他所著《一个企业和它的信念》坚定地认为:()。IB...
孔子爷爷串词怎么写 孔子爷爷串词怎么写 主持人串词是吧, 串词不能太长孩子走的再远,也走不出妈妈的牵挂。母爱,是人世间...
劝人不发怒的成语? 劝人不发怒的成语?忍一时风平浪静,退一步海阔天空 冲动是魔鬼 喜伤心 怒伤肝 人生就像一场戏,因为有...
跪求经典玄幻小说,书荒中。 跪求经典玄幻小说,书荒中。正常点的,不是排行榜前几的,不太血腥,不太YY,不太幼稚,有点情节。。。合...
伊索寓言可以在喜马拉雅录音吗 伊索寓言可以在喜马拉雅录音吗 可以的。_部梢韵略叵猜砝_M收听。_兑了髟⒀浴肥鞘澜缟献罟爬稀⒆钗...
急求游戏家族和成员的名字(大唐... 急求游戏家族和成员的名字(大唐无双)?我们是一群潍坊的要在一起玩....不要太多的特殊符号。特殊符号...
通灵师真的可以看见灵魂吗? 通灵师真的可以看见灵魂吗?这个。 科学家都不知道 偏...
乔斯坦贾德的《玛雅》求解析。还... 乔斯坦贾德的《玛雅》求解析。还是没完全看明白。《苏菲的世界》和《纸牌的秘密》都能基本理解意思。小男孩...
克雷洛夫寓言好句好词十句 克雷... 克雷洛夫寓言好句好词十句 克雷洛夫寓言经典摘抄1、好句 (1)眼前的一切都使我感到新奇:高大的楼房...
陈好的专集都有什么歌啊? 陈好的专集都有什么歌啊?谢谢大家了1 风吹草动 2 因为 3 付出 4 自己 5 女人爱自己 6 幸...
盗墓之蛊墓杂记全文+番外 盗墓之蛊墓杂记全文+番外我是个写书的,却不知为何会钻到地下去遭罪。退一步说,男人虽爱冒险,但希望有美...
为什么四川的妹子特别漂亮? 为什么四川的妹子特别漂亮?1:漂亮,皮肤好。但四川妹子确实漂亮的比较多,皮肤好,时尚,大气。川妹子的...
电影《黑鹰坠落》中的歌曲有那些... 电影《黑鹰坠落》中的歌曲有那些?执行任务出发前,在机库的宿舍里那一段。袜颂咐超动感《我恨我爱你》英文...
达玛花是哪个地区的花 达玛花是哪个地区的花好像是西藏的达玛花"是西藏一种花的名字就是高山大杜鹃花,彝族叫索玛花。灌木,五月...
适合女性读的书籍都有哪些呢?麻... 适合女性读的书籍都有哪些呢?麻烦推荐推荐 不知道你对李脊嫌大筱懿了解不了解,最近我看的《气场哪里来》...
古人助人为乐的故事有哪些? 古人助人为乐的故事有哪些? 严植之救人急难:南朝梁天监年间,严植之在江边偶然看见一个人躺在地上,...