题目描述
Given a string containing just the characters'(',')','{','}','['and']', determine if the input string is valid.
The brackets must close in the correct order,"()"and"()[]{}"are all valid but"(]"and"([)]"are not.
class Solution {
public:
//解题思路:主要考虑()[],([]),这两种 情况的讨论,可以重中间进行判断之后让其出栈再进行判断。
bool isValid(string s) {
stack<char>stack;
for(int i=0;i<s.size();i++)
{
if(s[i]==')'||s[i]=='}'||s[i]==']')
{
if(stack.empty())
{
return false;
}
char c = stack.top();
if((c=='('&&s[i]==')')||(c=='{'&&s[i]=='}')||(c=='['&&s[i]==']'))
{
stack.pop();
}
}else{
stack.push(s[i]);
}
}
return stack.empty();
}
};