20 有效的括號

2021-10-07 17:39:28 字數 1460 閱讀 8763

這一題使用的是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...