主要是熟悉一下栈的用法
参考
头文件
#include <stack>
定义
stack <int>stk;
基本用法
push(): 向栈内压入一个成员;
pop(): 从栈顶弹出一个成员;
empty(): 如果栈为空返回true,否则返回false;
top(): 返回栈顶,但不删除成员;
size(): 返回栈内元素的大小;
用法示例
#include<iostream>
#include<stack>
using namespace std;
int main()
{
stack <int>stk;
//入栈
for(int i=0;i<50;i++){
stk.push(i);
}
cout<<"栈的大小:"<<stk.size()<<endl;
while(!stk.empty())
{
cout<<stk.top()<<endl;
stk.pop();
}
cout<<"栈的大小:"<<stk.size()<<endl;
return 0;
}
本题解
class Solution {
public:
bool isValid(string s) {
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;
default:
break;
}
}
if (stk.empty())
return true;
else
return false;
}
};