1.题目
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.
2.思路
检查字符串的括号是否使用正确,自然是用栈了。
lass Solution {
public:
bool isValid(string s) {
stack<char> tmp;
for(int i=0;i<s.size();i++)
{
if(tmp.empty()) tmp.push(s[i]);
else {
if(tmp.top()=='(' && s[i]==')') tmp.pop();
else if(tmp.top()=='[' && s[i]==']') tmp.pop();
else if(tmp.top()=='{' && s[i]=='}') tmp.pop();
else tmp.push(s[i]);
}
}
if(tmp.empty()) return 1;
else return 0;
}
};