如果匹配返回true,否则返回false。
import java.util.*;
public class test3{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
System.out.println(match(str));
}
public static boolean match(String s){
int len=s.length();
Stack<Character> stk=new Stack<Character>();
for(int i=0;i<len;i++){
if(s.charAt(i)=='('){
stk.push('(');
}
if(s.charAt(i)==')'){
if(!stk.isEmpty()&&stk.pop()=='(')
continue;
else
return false;
}
if(s.charAt(i)=='['){
stk.push('[');
}
if(s.charAt(i)==']'){
if(!stk.isEmpty()&&stk.pop()=='[')
continue;
else
return false;
}
if(s.charAt(i)=='{'){
stk.push('{');
}
if(s.charAt(i)=='}'){
if(!stk.isEmpty()&&stk.pop()=='{')
continue;
else
return false;
}
}
if(stk.isEmpty()){
return true;
}else{
return true;
}
}
}