一、问题描述
Description:
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(Stack.empty())
Stack.push(s[i]);
else if((Stack.top()=='(' && s[i]==')') || (Stack.top()=='{' && s[i]=='}') || (Stack.top()=='[' && s[i]==']'))
Stack.pop();
else
Stack.push(s[i]);
}
if(Stack.empty())
return true;
else
return false;
}
};
LeetCode答案源代码:https://github.com/SongLee24/LeetCode