代碼隨想錄算法訓(xùn)練營第十一天|20. 有效的括號卸勺、1047. 刪除字符串中的所有相鄰重復(fù)項奸焙、150. 逆波蘭表達式求值

20. 有效的括號

題目鏈接:https://leetcode.cn/problems/valid-parentheses/

解答: https://programmercarl.com/0020.%E6%9C%89%E6%95%88%E7%9A%84%E6%8B%AC%E5%8F%B7.html

有效字符串需滿足:

1. 左括號必須用相同類型的右括號閉合兵罢。

2. 左括號必須以正確的順序閉合族壳。

3. 注意空字符串可被認為是有效字符串。

return false 的情況:

第一種情況:已經(jīng)遍歷完了字符串趣些,但是棧不為空仿荆,說明有相應(yīng)的左括號沒有右括號來匹配,所以return false

第二種情況:遍歷字符串匹配的過程中,發(fā)現(xiàn)棧里沒有要匹配的字符拢操。所以return false

第三種情況:遍歷字符串匹配的過程中锦亦,棧已經(jīng)為空了,沒有匹配的字符了令境,說明右括號沒有找到對應(yīng)的左括號return false

return true的情況:

字符串遍歷完之后杠园,棧是空的,就說明全都匹配了舔庶。

http://www.reibang.com/p/ae28d514003c

由于歷史原因抛蚁,在Java中,官方不建議使用Stack類惕橙,而是使用Deque代替瞧甩,也就是說,接口Deque是棧和雙端隊列這兩種數(shù)據(jù)結(jié)構(gòu)的集合體弥鹦。

關(guān)于LinkedList/Dequue中的添加和刪除操作:

· add 和 remove 是一對肚逸,源自Collection,所以添加到隊尾彬坏,從隊頭刪除朦促;

· offer 和 poll是一對,源自Queue栓始,(先進先出 => 尾進頭出)务冕,所以添加到隊尾,從隊頭刪除幻赚;

· push 和 pop是一對禀忆,源自Deque,其本質(zhì)是棧坯屿,先進后出 => 頭進頭出),所以添加到隊頭巍扛,從隊頭刪除领跛;

· offerFisrt/offerLast 和 pollFirst/pollLast是一對,源自Deque撤奸,其本質(zhì)是雙端隊列吠昭,offerFirst添加到隊頭,offerLast添加到隊尾胧瓜,pollFirst從隊頭刪除矢棚,pollLast從隊尾刪除;


1047. 刪除字符串中的所有相鄰重復(fù)項

題目鏈接:https://leetcode.cn/problems/remove-all-adjacent-duplicates-in-string/

解答:https://programmercarl.com/1047.%E5%88%A0%E9%99%A4%E5%AD%97%E7%AC%A6%E4%B8%B2%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E7%9B%B8%E9%82%BB%E9%87%8D%E5%A4%8D%E9%A1%B9.html

我們在刪除相鄰重復(fù)項的時候府喳,其實就是要知道當(dāng)前遍歷的這個元素蒲肋,我們在前一位是不是遍歷過一樣數(shù)值的元素,那么如何記錄前面遍歷過的元素呢?

所以就是用棧來存放兜粘,那么棧的目的申窘,就是存放遍歷過的元素,當(dāng)遍歷當(dāng)前的這個元素的時候孔轴,去棧里看一下我們是不是遍歷過相同數(shù)值的相鄰元素剃法。

注意??:

1. ArrayDeque會比LinkedList在除了刪除元素這一點外會快一點

參考:https://stackoverflow.com/questions/6163166/why-is-arraydeque-better-than-linkedlist

ArrayDeque<Character>deque=new ArrayDeque<>();

2. 最后所有字符出棧的時候,是按照從后往前的順序出棧的

str=deque.pop()+str; // String str;

sb.reverse(); // StringBuffer sb;


150. 逆波蘭表達式求值

題目鏈接:https://leetcode.cn/problems/evaluate-reverse-polish-notation/

解答:https://programmercarl.com/0150.%E9%80%86%E6%B3%A2%E5%85%B0%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%B1%82%E5%80%BC.html#%E5%85%B6%E4%BB%96%E8%AF%AD%E8%A8%80%E7%89%88%E6%9C%AC

逆波蘭表達式:是一種后綴表達式路鹰,所謂后綴就是指運算符寫在后面贷洲。

逆波蘭表達式主要有以下兩個優(yōu)點:

1、去掉括號后表達式無歧義晋柱,上式即便寫成 1 2 + 3 4 + * 也可以依據(jù)次序計算出正確結(jié)果优构。

2、適合用棧操作運算:遇到數(shù)字則入棧趣斤;遇到運算符則取出棧頂兩個數(shù)字進行計算俩块,并將結(jié)果壓入棧中。

遞歸就是用棧來實現(xiàn)的:所以棧與遞歸之間在某種程度上是可以轉(zhuǎn)換的浓领!?這一點我們在后續(xù)講解二叉樹的時候玉凯,會更詳細的講解到。那么來看一下本題联贩,其實逆波蘭表達式相當(dāng)于是二叉樹中的后序遍歷漫仆。 大家可以把運算符作為中間節(jié)點,按照后序遍歷的規(guī)則畫出一個二叉樹泪幌。

中綴表達式對于計算機來說不友好盲厌,二后綴表達式計算機可以利用棧來順序處理,不需要考慮優(yōu)先級了祸泪。也不用回退了吗浩,?所以后綴表達式對計算機來說是非常友好的。

注意??:除法和減法的兩個運算數(shù)是有先后順序的

除法:

int temp1=stack.pop();

int temp2=stack.pop();

stack.push(temp2/temp1);

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末没隘,一起剝皮案震驚了整個濱河市懂扼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌右蒲,老刑警劉巖阀湿,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異瑰妄,居然都是意外死亡陷嘴,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門间坐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來灾挨,“玉大人邑退,你說我怎么就攤上這事≌谴祝” “怎么了瓜饥?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長浴骂。 經(jīng)常有香客問我乓土,道長,這世上最難降的妖魔是什么溯警? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任趣苏,我火速辦了婚禮,結(jié)果婚禮上梯轻,老公的妹妹穿的比我還像新娘食磕。我一直安慰自己,他們只是感情好喳挑,可當(dāng)我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布彬伦。 她就那樣靜靜地躺著,像睡著了一般伊诵。 火紅的嫁衣襯著肌膚如雪单绑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天曹宴,我揣著相機與錄音搂橙,去河邊找鬼斋日。 笑死止喷,一個胖子當(dāng)著我的面吹牛阶牍,可吹牛的內(nèi)容都是我干的叭首。 我是一名探鬼主播,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼甲葬,長吁一口氣:“原來是場噩夢啊……” “哼撇寞!你這毒婦竟也來了绍撞?” 一聲冷哼從身側(cè)響起礁芦,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤蜻韭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后宴偿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體湘捎,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡诀豁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年窄刘,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舷胜。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡娩践,死狀恐怖活翩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情翻伺,我是刑警寧澤材泄,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站吨岭,受9級特大地震影響拉宗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜辣辫,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一旦事、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧急灭,春花似錦姐浮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至畴嘶,卻和暖如春蛋逾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背掠廓。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工换怖, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蟀瞧。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓沉颂,卻偏偏與公主長得像,于是被迫代替她去往敵國和親悦污。 傳聞我的和親對象是個殘疾皇子铸屉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內(nèi)容