算法思想
1.把所有的括号都存储进去,然后判断各个括号类型的数目(各种左括号,右括号的数目)
2.当出现右括号时我们需要判断其前一个括号是否是另一个的左括号
if(a[i]==']'&&a[i-1]=='(') else if(a[i]==')'&&a[i-1]=='[')
3.判断各种括号的左右括号数目是否相等
算法实现
static void check(int T)
{
char a[]=new char[100];
Scanner input=new Scanner(System.in);
String s[]=new String[T];
for(int i=0;i<T;i++)
s[i]=input.nextLine();
for(int j=0;j<T;j++)
{
int flag=1;
int fz=0,fy=0,yz=0,yy=0;
for(int i=0;i<s[j].length();i++)
{
a[i]=s[j].charAt(i);
switch(a[i])
{
case '(' :
fz++;
break;
case '[' :
yz++;
break;
case ')' :
yy++;
break;
case ']' :
fy++;
break;
}
if(i==0)
continue;
if(a[i]==']'&&a[i-1]=='(')
{
flag=0;
break;
}
else if(a[i]==')'&&a[i-1]=='[')
{
flag=0;
break;
}
}
if(fz!=fy||yz!=yy)
flag=0;
if(flag==1)
System.out.println("yes");
else
System.out.println("no");
}
}