更新时间2019-04-26 00:51:55
方法名为public static boolean checkBalance(String expression);
测试用例:
① expression为[a{b/(c − d ) + e/( f + g)} − h]则返回true;
② expression为{a[b+(c+2)/d]+e)+f}则返回false。
以下程序可以做到精确匹配,参考
public static boolean checkBalance(String expression)
{
int s1,s2,s3;
s1=0;
s2=0;
s3=0;
for(int i=0;i<expression.length();i++)
{
char c=expression.charAt(i);
switch(c)
{
case '{':
s1++;
break;
case '[':
s2++;
break;
case '(':
s3++;
break;
case '}':
s1--;
break;
case ']':
s2--;
break;
case ')':
s3--;
break;
}
}
return (s1==0 && s2==0 && s3==0);
}
public static void main(String[]args) {
System.out.println(checkBalance("[a{b/(c − d ) + e/( f + g)} − h]"));
System.out.println(checkBalance("{a[b+(c+2)/d]+e)+f}"));
}