牛客題霸 [括號序列] 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++
- 牛客題霸--求路徑
- 括號匹配的檢驗問題(C++)C++
- 演算法練習題1-括號序列演算法
- 牛客多校H題題解
- 牛客題霸NC132環形連結串列的約瑟夫問題Java題解Java
- 牛客題霸--連續子陣列的最大和陣列
- P3215 括號修復 題解
- 每日一題: 有效括號每日一題
- 牛課題霸--palindrome-number
- 牛客小白月賽105 題解
- 牛客周賽 Round 66 題解
- 【10.24 牛客普及(四)】 卡片 題解
- 牛客2020跨年場 部分題解
- Luogu P3059 Concurrently Balanced Strings G 題解 [ 紫 ] [ 線性 dp ] [ 雜湊 ] [ 括號序列 ]
- 【10.22 牛客普及(三)】 牛半仙的妹子gcd 題解GC
- 牛客周賽 Round 70 A~G 題解
- 牛客周賽 Round 62 全部題解
- 牛客錯題集
- 解決Oracle序列跳號問題Oracle
- 最長有效括號的問題
- LeetCode 3: PairsOfParentheses (括號匹配問題)LeetCodeAI
- 牛客小白月賽88-DE題解
- 牛客 215E 黃魔法師 題解
- 牛客錯題集(Java)Java
- c++物件建立帶括號與無括號的區別C++物件
- [C++]括號使用小技巧C++
- 22. 括號生成-c++C++
- 資料結構括號匹配問題資料結構
- 牛客周賽Round 67 個人題解(A~F)
- 夜深人靜寫題解--牛客第六場
- 牛客小白月賽27部分題解
- 牛客網刷題(純java題型 31~60題)Java
- 牛客網刷題(純java題型 1~30題)Java
- 牛客網刷題(純java題型 91~120題)Java
- 牛客網刷題(純java題型 241~270題)Java