Given a string containing just the characters ‘(’, ‘)’, ‘{’, ‘}’, ‘[’ and ‘]’, determine if the input string is valid.
An input string is valid if:
- Open brackets must be closed by the same type of brackets.
- Open brackets must be closed in the correct order.
- Note that an empty string is also considered valid.
Example 1:
Input: "){"
Output: false
Example 2:
Input: "()[]{}"
Output: true
Example 3:
Input: "(]"
Output: false
Example 4:
Input: "([)]"
Output: false
Example 5:
Input: "{[]}"
Output: true
Mycode:
class Solution {
public:
bool isValid(string s) {
if(s=="")return true;
int len=s.size();
if(len%2 != 0) return false; //可选择
stack<char> analys;
for(int i = 0; i < len; ++i)
{
if(s[i] == '(' || s[i] == '[' || s[i] == '{') analys.push(s[i]);
else
{
if(s[i] == ')'){
if(analys.empty() || analys.top() != '(') return false;
}else if(s[i] == ']'){
if(analys.empty() || analys.top() != '[') return false;
}else{
if(analys.empty() || analys.top() != '{') return false;
}
analys.pop();
}
}
return analys.empty(); //empty()返回bool是否为空
}
};