有效括号序列_牛客题霸_牛客网 (nowcoder.com)

利用栈,遇到 ‘( [ { ’压入栈,
遇到 ‘)] } ’弹出
结束后 判断是否为空如果比配正确 返回true;
class Solution {
public:
/**
*
* @param s string字符串
* @return bool布尔型
*/
bool isValid(string s) {
// write code here
stack<char> stk;
for (int i = 0; i < s.size(); i++) {
switch (s[i]) {
case '(':
case '[':
case '{':
stk.push(s[i]);
break;
case ')':
if (stk.empty() || stk.top() != '(')
return false;
stk.pop();
break;
case ']':
if (stk.empty() || stk.top() != '[')
return false;
stk.pop();
break;
case '}':
if (stk.empty() || stk.top() != '{')
return false;
stk.pop();
break;
}
}
return stk.empty() ? true : false;
}
};
该代码实现了一个C++函数,用于检查输入的字符串是否是有效的括号序列。通过栈数据结构,遇到开括号压栈,遇到对应的闭括号时弹出栈顶元素,最后检查栈是否为空以确定括号是否匹配正确。
187

被折叠的 条评论
为什么被折叠?



