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> sk;
int len = s.length();
if(len == 1)
return false;
for(int i=0; i<len; i++)
{
if(s[i] == '(' || s[i] == '[' || s[i] == '{')
sk.push(s[i]);
else if(s[i] == ')')
if(sk.size() ==0)
return false;
else if(sk.top() != '(')
return false;
else
sk.pop();
else if(s[i] == ']')
if(sk.size() ==0)
return false;
else if(sk.top() != '[')
return false;
else
sk.pop();
else if(s[i] == '}')
if(sk.size() ==0)
return false;
else if(sk.top() != '{')
return false;
else
sk.pop();
}
if(sk.size() > 0)
return false;
return true;
}
};