给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串,判断字符串是否有效。
括号必须以正确的顺序关闭,”()” 和 “()[]{}” 是有效的但是 “(]” 和 “([)]” 不是。
这是一道比较简单的题目,参考网址
public static boolean isValid(String s) {
if (s.isEmpty())
return true;
Stack<Character> stack = new Stack<>();
for (char c : s.toCharArray()) {
if (c == '(')
stack.push(')');
else if (c == '{')
stack.push('}');
else if (c == '[')
stack.push(']');
else if (stack.isEmpty() || stack.pop() != c)
return false;
}
return stack.isEmpty();
}
class Solution
{
public:
bool isValid(string s)
{
stack<char> sta=stack<char>();
for(int i=0; ichar c=s[i];
if(c=='(')
{
sta.push(')');
}
else if(c=='{')
{
sta.push('}');
}
else if(c=='[')
{
sta.push(']');
}
else
{
if(sta.empty())
return false;
else
{
char c_top = sta.top();
sta.pop();
if(c_top!=c)
return false;
}
}
}
return sta.empty();
}
};
class Solution(object):
def isValid(self, s):
list = []
for c in s:
if (c == '('):
list.append(')')
elif (c == '{'):
list.append('}')
elif (c == '['):
list.append(']')
elif (not list or c != list.pop()):
return False
return not list