?20.?有效的括號?
文檔和視頻講解:代碼隨想錄(programmercarl.com)
狀態(tài):ac
用時:0.5h
思路:大致的思路就是當(dāng)遇到左括號壶辜,就在棧中放入相應(yīng)的右括號悯舟,遇到相同的右括號則彈出。具體的不匹配的場景分為以下三種:
????????????1.左括號多余砸民;2.右括號多余图谷;3.左右括號不匹配。
? ? ? ? 第一種遍歷完字符串后棧不為空阱洪。第二種遍歷的過程中棧為空便贵。第三種遍歷的過程中棧頂和當(dāng)前字符不同。
代碼:
圖1
1047.?刪除字符串中的所有相鄰重復(fù)項?
文檔和視頻講解:代碼隨想錄(programmercarl.com)
狀態(tài):ac
用時:0.5h
思路:翻轉(zhuǎn)字符串后冗荸,遍歷過程中承璃,遇到和棧頂相同的字符彈出,不同的則壓入棧中蚌本。遍歷結(jié)束后依次取出棧中的字符組成一個字符串盔粹。
代碼:
圖2
?150.?逆波蘭表達式求值?
文檔和視頻講解:代碼隨想錄(programmercarl.com)
狀態(tài):ac
用時:0.5h
思路:遍歷整個容器,遇到數(shù)字放入棧中程癌,遇到運算符從棧中依次取出兩個數(shù)字舷嗡,注意如果是“-”或者“/”,兩個數(shù)字的順序是有要求的嵌莉。棧頂?shù)氖菧p數(shù)或除數(shù)进萄,棧頂下面的第二個數(shù)是被減數(shù)或被除數(shù)。
代碼:
圖3