题目描述: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.
译:给定一个字符串,包含字符"()","{}","[]",
确定输入字串是否有效。
括号必须以正确的顺序关闭,
determine if the input string is valid.
The brackets(括号)must close in the correct order,
"()" and "()[]{}" are all valid but "(]" and "([)]" are not.
译:给定一个字符串,包含字符"()","{}","[]",
确定输入字串是否有效。
括号必须以正确的顺序关闭,
"()"、"()[]{}"均为有效,但"(]"和"([)]"不是.
public class Valid_Parentheses {
public static boolean judge(char str1,char str2)
{
if(str1=='(')
if(str2==')')
return true;
if(str1=='[')
if(str2==']')
return true;
if(str1=='{')
if(str2=='}')
return true;
return false;
}
public static boolean solve(String str)
{
Stack<Character> stack=new Stack<Character>();
for(int i=0;i<str.length();i++)
{
char mid = str.charAt(i);
if(mid=='('||mid=='['||mid=='{')
{
stack.push(mid);
}
if(mid==')'||mid==']'||mid=='}')
{
if(!stack.empty())
{
if(judge(stack.pop(),mid))
{
return true;
}
}
else
{
return false;
}
}
}
return false;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.println(solve(str));
}
}