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> cstack;
for (int i = 0; i<s.length(); i++){
switch (s[i]){
case '(':
cstack.push('(');
break;
case '[':
cstack.push('[');
break;
case '{':
cstack.push('{');
break;
case ')':
if (!cstack.empty() && cstack.top()=='(')
cstack.pop();
else return false;
break;
case ']':
if (!cstack.empty() && cstack.top() == '[')
cstack.pop();
else return false;
break;
case '}':
if (!cstack.empty() && cstack.top() == '{')
cstack.pop();
else return false;
break;
default:
return false;break;
}//switch
}//for
if (cstack.empty())
return true;
return false;
}
};