https://leetcode.com/problems/valid-parentheses/
思考过程:
第一个截图:先进后出,第二个截图进出进出
考虑用栈的方法来做
class stack<> 实作出一个stack(也成为LIFO,后进先出),你可以使用push()将任意数量的元素置入stack中,也可以使用pop()将元素依次插入次序反序从容器移除(即后进先出)。
stack就三个接口函数,push(),top(),pop()。
- push()会将一个元素放入stack中。
- top()会返回stack中的栈顶元素,返回的是reference,可以就地修改值。
- pop()移除栈顶元素,无返回值。
- size()返回stack长度。
- empty()返回stack是否为空。
class Solution {
public:
bool isValid(string s) {
stack<char>st;
for(char c:s){
if (c=='['||c=='{'||c=='(')
{
st.push(c);
}
else
{
if(st.empty()) return false;
if(c == ')' && st.top() != '(') return false;
if(c == '}' && st.top() != '{') return false;
if(c == ']' && st.top() != '[') return false;
st.pop();
}
}
return st.empty();
}
};