首页 > 电脑

java写一个程序,判断括号是否匹配

更新时间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}"));
}

相关标签:java

上一篇:c语言(指针,函数)

下一篇:求帮忙解决!!①当执行这段代码时将显示什么值?②这段代码计算的是哪个数学函数的值?