#include <iostream>
#include <stack>
#include <string>
using namespace std;
class Solution {
public:
bool isValid(string s) {
stack<char> temp; //创建一个char型的stack!
for (int i = 0; i < s.size(); i++)
{
if (s[i] == '(' || s[i] == '[' || s[i] == '{')
{
temp.emplace(s[i]); //把一出现的‘{’‘【’‘(’压入栈,栈是后进后出的!
}
else
{
if (temp.empty()) return false;
if (s[i] == ')'&&temp.top() != '(') return false;
if (s[i] == ']'&&temp.top() != '[') return false;
if (s[i] == '}'&&temp.top() != '{') return false;
temp.pop();
}
}
return temp.empty();
}
};
刷题总结:
学会stack标准模板,stack的进出规则为先进先出,后进后出!所以把根据题目的要求,这种数据结构非常适合用于解决本题!