牛客題霸 [括號序列] C++題解/答案
題目描述
給出一個僅包含字元’(’,’)’,’{’,’}’,’[‘和’]’,的字串,判斷給出的字串是否是合法的括號序列
括號必須以正確的順序關閉,"()“和”()[]{}“都是合法的括號序列,但”(]“和”([)]"不合法。
題解:
用棧來做
用棧來存每個符號的左邊,當出現符號右邊時,看棧的頂部是否為該符號的左邊,如果不能匹配則返回0,能匹配則將棧頂pop
全部結束時棧應該是空的,否則返回0
注意:題目給的資料有可能會先輸入符號的右部分,所以當棧為空時也應該壓入字元
if(s[i]=='('||s[i]=='{'||s[i]=='['||q.empty())
沒有這個q.empty()會導致段錯誤
程式碼:
class Solution {
public:
/**
*
* @param s string字串
* @return bool布林型
*/
bool isValid(string s) {
// write code here
stack<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++題解/答案C++
- 牛客題霸 [二叉樹中是否存在節點和為指定值的路徑] C++題解/答案二叉樹C++
- 演算法練習題1-括號序列演算法
- 牛客題霸NC132環形連結串列的約瑟夫問題Java題解Java
- 括號匹配的檢驗問題(C++)C++
- 牛客題霸--連續子陣列的最大和陣列
- 每日一題: 有效括號每日一題
- ACM 括號配對問題ACM
- 解決Oracle序列跳號問題Oracle
- 牛客錯題集(Java)Java
- 牛客小白月賽88-DE題解
- 【10.22 牛客普及(三)】 牛半仙的妹子gcd 題解GC
- c++物件建立帶括號與無括號的區別C++物件
- 牛客網Java評估題Java
- 牛客網刷題(純java題型 31~60題)Java
- 牛客網刷題(純java題型 421~450題)Java
- 牛客網刷題(純java題型 241~270題)Java
- 牛客網刷題(純java題型 1~30題)Java
- 資料結構括號匹配問題資料結構
- 牛客SQL練習第21題SQL
- LeetCode 3: PairsOfParentheses (括號匹配問題)LeetCodeAI
- 牛客網刷題(純java題型 91~120題)Java
- 牛客網字串排序程式設計題字串排序程式設計
- 牛客網SQL刷題31-40SQL
- 牛客網SQL刷題41-50SQL
- 牛客網題目知識點收集
- 演算法題:判斷括號字串是否有效演算法字串
- 力扣刷題Python筆記:括號生成力扣Python筆記
- 牛客小白月賽88 出題覆盤
- 牛客網刷題hj1-hj4
- 理解正規表示式中的括號 (),方括號 [] 和大括號 {}
- JSON 字串中的中括號和大括號區別詳解JSON字串
- 挑選方案問題(牛客競賽 思維題+推導公式)公式
- P3863 序列 題解
- 【leetcode】leetcode22括號生成通過程式碼及題解LeetCode
- Dubbo面試25題答案詳解面試
- 洛谷題單指南-數學基礎問題-P2651 新增括號III
- [題解]P4597 序列 sequence