牛客题霸 [括号序列] C++题解/答案
生活随笔
收集整理的這篇文章主要介紹了
牛客题霸 [括号序列] C++题解/答案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
牛客題霸 [括號序列] C++題解/答案
題目描述
給出一個僅包含字符’(’,’)’,’{’,’}’,’[‘和’]’,的字符串,判斷給出的字符串是否是合法的括號序列
括號必須以正確的順序關閉,"()“和”()[]{}“都是合法的括號序列,但”(]“和”([)]"不合法。
題解:
用棧來做
用棧來存每個符號的左邊,當出現符號右邊時,看棧的頂部是否為該符號的左邊,如果不能匹配則返回0,能匹配則將棧頂pop
全部結束時棧應該是空的,否則返回0
注意:題目給的數據有可能會先輸入符號的右部分,所以當棧為空時也應該壓入字符
沒有這個q.empty()會導致段錯誤
代碼:
class Solution { public:/*** * @param s string字符串 * @return bool布爾型*/bool isValid(string s) {// write code herestack<char>q;for(int i=0;i<s.length();i++){if(s[i]=='('||s[i]=='{'||s[i]=='['||q.empty()){q.push(s[i]);continue;}if(s[i]==')'&&q.top()!='(')return false;else if(s[i]=='}'&&q.top()!='{')return false;else if(s[i]==']'&&q.top()!='[')return false;else if(q.empty())return false;q.pop();}if(q.empty())return true;else return false;} };總結
以上是生活随笔為你收集整理的牛客题霸 [括号序列] C++题解/答案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小牛创始人李一男的自游家“复活”更进一步
- 下一篇: 牛客题霸 [寻找第K大] C++题解/答