day11 ● 20. 有效的括号● 1047. 删除字符串中的所有相邻重复项● 150. 逆波兰表达式求值
创始人
2024-06-03 03:03:56
0

20. 有效的括号

介绍

思路

一共有三种情况:

栈模拟三种不匹配的情况:

第一种:左括号多了遍历字符串时,若遇到左括号,就将右括号入栈。若约到右括号,则将栈顶元素出栈。最后,若栈中留有元素,那么不匹配

第二种:右括号不匹配遍历字符串时,若遇到左括号,就将右括号入栈。若约到右括号,则将栈顶元素出栈,若不匹配,则结束遍历,不匹配。

第三种:右括号多了遍历字符串时,若遇到左括号,就将右括号入栈。若约到右括号,则将栈顶元素出栈,若字符串还没遍历结束,栈就为空了,那么也不匹配。

定义一个栈 stack st;
剪支if(s.size%2!=0) return false
for(i=0;i

代码

class Solution {
public:bool isValid(string s) {if(s.size()%2!=0)   return false;stack st;for(int i=0;i

1047. 删除字符串中的所有相邻重复项

介绍

给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。

在 S 上反复执行重复项删除操作,直到无法继续删除。

在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。

思路

遍历字符串,开始栈里没有元素,则入栈,然后遍历下一个。下一个元素首先将于栈顶元素比较,若不相等,则入栈,继续往后遍历。遍历到的元素继续与栈顶元素比较,若相等,则满足消除条件,则将栈顶元素弹出,继续向下遍历比较,直到遍历结束,此时栈中的元素就是剩下的元素,出栈即可。

也可以用字符串来模拟这个栈,使用字符串模拟时,把尾部作为栈的出口,把头部作为栈的顶部。

定义一个字符串  string result
for(char s :S ){if(result==empty()||s!=result.back)//字符串使用尾部,模拟栈头result.push_back(s)else //相等的话,栈中的元素做一个弹出的操作result.pop_back();//字符串从尾部弹出
}
return result;//字符串从头显示

代码

class Solution {
public:string removeDuplicates(string s) {string result;for(char r:s){if(result.empty() || result.back()!=r){result.push_back(r);}else{result.pop_back();}}return result;}
};

150. 逆波兰表达式求值

介绍

思路

逆波兰表达式/后缀表达式

中置表达式:(1+2)x(3+4)

后缀表达式即为上述二叉树的后续遍历(左右中)12+34+x

如何使用栈来计算后缀表达式?

遇到数字就加入到栈中,遇到操作符就从栈中取出两个元素做计算,然后将其入栈。最后的结果就是栈中的最后一个元素。

stack st;
for(i=0;i

代码

class Solution {
public:int evalRPN(vector& tokens) {stack st;for(int i=0;i

相关内容

热门资讯

安卓系统金立手机,品质生活新选... 你有没有发现,最近安卓系统下的金立手机突然火了起来?没错,就是那个曾经陪伴我们走过无数时光的金立手机...
无安卓系统的电视,新型无系统电... 亲爱的读者们,你是否厌倦了那些充斥着安卓系统的电视?想要尝试一些新鲜玩意儿?那就跟我一起探索一下无安...
麒麟系统能刷安卓系统吗,轻松刷... 你有没有想过,你的麒麟手机能不能装上安卓系统呢?这可是个让人好奇不已的问题。现在,就让我来带你一探究...
手机公司安卓系统吗,手机公司引... 你有没有想过,为什么你的手机里装的是安卓系统而不是苹果的iOS呢?这背后可是有着不少故事和门道的哦!...
安卓系统 文件网络传输,安卓系... 你有没有想过,手机里的文件怎么才能轻松地传给朋友呢?今天,就让我来给你揭秘安卓系统中的文件网络传输技...
安卓手机系统怎样备份,安卓手机... 你有没有想过,如果你的安卓手机突然“罢工”了,里面的照片、联系人、应用和数据怎么办?别担心,今天就来...
安卓系统怎样分享app,安卓系... 你是不是也和我一样,手机里装了超多好用的APP,但是有时候想和朋友分享这些宝藏,却不知道怎么操作呢?...
sonicarekids安卓系... 最近是不是你也遇到了Sonicare Kids安卓系统打不开的烦恼?别急,让我来帮你一探究竟,找出解...
安卓刷mac系统教程,体验全新... 你有没有想过,让你的安卓手机也来个华丽变身,摇身一变成为一台Mac电脑呢?别惊讶,这可不是天方夜谭,...
安卓系统根目录删除,深度揭秘删... 你有没有遇到过这种情况:手机里的安卓系统突然出了点小状况,比如不小心点错了某个按钮,结果发现根目录里...
怎么在安卓系统装windows... 你是不是也和我一样,对安卓手机的强大性能爱不释手,但又时不时地想念Windows系统的熟悉界面和那些...
kindle安卓系统壁纸设置,... 亲爱的Kindle用户,你是否曾为你的Kindle设备挑选过一款心仪的壁纸呢?今天,就让我带你一起探...
一加降级安卓系统,回顾与展望 你有没有想过,你的手机系统升级后,竟然还能降级回旧版本?这听起来是不是有点像穿越时空的魔法?没错,今...
凤凰安卓电视系统安装,畅享智能... 亲爱的读者们,你是否也像我一样,对凤凰安卓电视系统安装充满了好奇?想象一台普通的电视,通过安装这个系...
如何更换安卓系统手机,安卓系统... 你有没有想过,你的安卓手机用久了,是不是有点儿卡顿了呢?别急,今天就来教你怎么给它换换“血”,让它焕...
国家粮油统计安卓系统,智能数据... 你有没有想过,每天我们吃的粮食,背后竟然有这么多的故事和数据呢?没错,今天就要带你走进国家粮油统计的...
台电双系统安卓更新,畅享双平台... 你知道吗?最近台电的双系统安卓更新可是引起了不小的轰动呢!作为一个紧跟科技潮流的数码爱好者,我可是迫...
安卓系统上打开caj,Andr... 你有没有遇到过这种情况:手里拿着一本看起来超级有料的电子书,打开一看,哎呀妈呀,竟然是CAJ格式!别...
装安卓手机系统教程,安卓手机系... 你有没有想过,让你的安卓手机也能装上Windows系统,体验一下不一样的操作界面呢?没错,今天就要来...
安卓系统不供应华为,安卓系统不... 你知道吗?最近有个大新闻在科技圈里炸开了锅,那就是安卓系统不再供应华为了!这可不仅仅是两个公司之间的...