根据不同的括号有个计数器,在遍历时,当计数器小于0则返回false或者当遍历完后,计数器仍旧不为零,也返回false。
import java.util.Scanner;
public class bracketsMatch {
public static void main(String args[]){
Scanner input=new Scanner(System.in);
String s=input.nextLine();
int a=0;
int b=0;
int c=0;
for(int i=0;i<s.length();i++){
if(s.charAt(i)=='(')a++;
if(s.charAt(i)==')')a--;
if(s.charAt(i)=='{')b++;
if(s.charAt(i)=='}')b--;
if(s.charAt(i)=='[')c++;
if(s.charAt(i)==']')c--;
if(a<0||b<0||c<0){
System.out.println("false");return;
}
}
if(a!=0||b!=0||c!=0){System.out.println("false");return;}
System.out.println("true");
}
}