這一題使用的是stack的知識點,整個思路有點像消消樂的感覺。
棧是一種重要的資料結構,它的特點是後進先出(lifo),我們可以將棧想象成一摞書,就像這樣:
作為一種重要的資料結構,它最重要的功能就是對資料的儲存和獲取,可以使用哪些方法儲存和獲取資料呢?
(1)empty()方法:判斷stack是否為空,如果為空返回true,否則返回false
(2)top()方法:獲得棧頂的元素(好像沒有獲取棧底的方法)。如果stack中沒有元素,使用top()方法可能就會報錯。
(3)pop()方法:移除棧頂的元素
(4)push()方法:向棧中新增元素
(5)size()方法:獲取棧中元素的個數
string是c++中處理字串乙個重要的資料結構,相比於char,string有著更多豐富的方法,更加靈活。
(1)size()和length()方法:返回字串的真實長度,這兩個方法是等價的。
string s = "sfasfas";
cout << s.size() << endl;
cout << s.length() pop_back()方法:移除string最後乙個字元
string s = "abc";
cout << s << endl; // 結果是abc
char c = 'd';
s.pop_back();
cout << s <
class solution 或者 )
else if (s_stack.empty())
return false;
else if (temp == ')' && s_stack.top() == '(')
s_stack.pop();
else if (temp == ']' && s_stack.top() == '[')
s_stack.pop();
else if (temp == '}' && s_stack.top() == '
return s_stack.empty();}};
雖然**寫出來了,但是占用的記憶體太大。從流程圖上就可以看出我寫的有多複雜
通常來說,乙個流程圖只能有乙個輸出,但是我寫的流程圖有很多個輸出,可見思維上有很多漏洞。
20 有效括號
1.題目描述 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。2.示例 輸入 輸出 true輸入 輸出 false3.思路 可以採用棧來解決,第一步 判斷棧是否空,為空則進乙個括號,若不為空,則判斷當前括號和棧頂元素是否匹配,不...
20 有效的括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 tr...
20 有效的括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 tr...