20. 有效的括號
思路:
分成左括號疫向,各種右括號&&top==對應的左括號四種情況咳蔚,但注意的是top()需要棧內有元素,為了不報錯先在棧內存入一個元素搔驼,最后判斷條件為棧頂是否為最先存入的元素
看視頻后:
可以先通過元素個數(shù)判斷谈火,奇數(shù)返回false。元素是左括號時舌涨,push對應的右括號糯耍,如果元素相同pop,如果是空或者元素不相同囊嘉,返回false温技。
1047. 刪除字符串中的所有相鄰重復項
思路:
用棧存儲字符串,如果棧不為空且棧頂與元素相同就pop扭粱,否則push舵鳞,但不知道怎么轉換成string。
看代碼后:
1.string result="";result+=stack.top()琢蛤,還要reverse(result.begin(),result.end())
2.直接用string的back,push_back,pop_back
150. 逆波蘭表達式求值
思路:
用棧存儲數(shù)字蜓堕,每遇到一個符號則彈出兩個元素(有順序)進行數(shù)學運算抛虏。怎么將string轉化成int?
看代碼后:
number.push(stoi(tokens[i]));