这题是关于表达式解析的,2007年学习数据结构曾经实现过,思路是把中缀表达式转换为后缀表达式,再结合栈这种数据结构计算后缀表达式,就拿来执行下,结果LeetCode test case 1*2-3/4+5*6-7*8+9/10
报了个错 java.lang.ArithmeticException: / by zero
,用StringTokenizer把操作符与操作数拆开,改了下原来的代码,最终运行通过了,但自己对其中的机理还是有点知其然而不知其所以然。
原来java7以后可以在switch的case语句里用String类型。
In the JDK 7 release, you can use a String object in the expression of a switch statement.
Basic Calculator这系列的题看来也是比较经典的,表达式解析好像是数据结构与编译原理的交叉点之一。
Java
1 | import java.util.ArrayList; |
Submission Detail
- 109 / 109 test cases passed.
- Runtime: 98 ms
- Your runtime beats 5.79 % of java submissions.