p65页第4题
思路书上有
参考代码:
import java.util.Stack; public class c1 { public static void main(String[] args) { // TODO Auto-generated method stub Stack<String> mys=new Stack<String>(); String a,t; a="3*(2+(1/(6+8))-(4+1))"; for (int i = 0; i < a.length(); i++) { t=a.substring(i,i+1); if(t.equals("(")) { mys.push("x"); } if(t.equals(")")) { if(mys.empty()) { System.out.println("sth wrong![( requied]"); return; } mys.pop(); } } if(!mys.empty()) { System.out.println("sth wrong![) requied]"); return; } System.out.println("ok"); } }
自行运行调试。
思考:
{[(-b)+sqrt(b*b-4*a*c)]/(2*a)}*100
判断括号是否匹配。
如果不匹配,提示“第XXX个字符x找不到匹配的符号”
注意:三种括号不可以交叉。
x为“{[()]}”之一