import java.util.Scanner;
import java.util.Stack;
public class BracketMatch {
Stack<Character> stack = new Stack<Character>();
while(in.hasNext()){
System.out.println("invalid");
}else{
for(int i = 0;i<string.length();i++){
if(stack.isEmpty()){
stack.push(string.charAt(i));
}else if(stack.peek()=='(' && string.charAt(i)==')' || stack.peek()=='[' && string.charAt(i)==']' || stack.peek()=='{' && string.charAt(i)=='}'){
stack.pop();
}else{
stack.push(string.charAt(i));
}
System.out.println("valid");
}else{
System.out.println("invalid");
}
}
}
}
}
import java.util.Stack;
public class BracketMatch {
public static void main(String[] args){
//从键盘输入
Scanner in = new Scanner(System.in);Stack<Character> stack = new Stack<Character>();
while(in.hasNext()){
String string = in.next();
//输入奇数个括号,返回无效invalid
if(string.length()%2 != 0){System.out.println("invalid");
}else{
for(int i = 0;i<string.length();i++){
if(stack.isEmpty()){
stack.push(string.charAt(i));
}else if(stack.peek()=='(' && string.charAt(i)==')' || stack.peek()=='[' && string.charAt(i)==']' || stack.peek()=='{' && string.charAt(i)=='}'){
stack.pop();
}else{
stack.push(string.charAt(i));
}
}
//循环结束,如果栈为空,则括号匹配返回有效valid
if(stack.isEmpty()){System.out.println("valid");
}else{
System.out.println("invalid");
}
}
}
}
}