两个运算符以string形式输入
两个运算符以string形式输入
|
1
|
|
FzzfJan 22, 2017
2
table ,然后直接查表
|
|
linbokiJan 22, 2017 via Android
3
二维数组
|
|
hst001Jan 22, 2017
4
逆波兰表达式,遇到*/就出栈计算
|
|
5
@hst001 我就是在参考 https://zh.wikipedia.org/zh-hans/%E8%B0%83%E5%BA%A6%E5%9C%BA%E7%AE%97%E6%B3%95
实现中缀式转逆波兰式。。。 |
|
steel1990Jan 22, 2017 via Android
6
给每个运算符指定一个数字,然后比较数字大小,多简单
|
|
7
直接构造一个 map 记录每个操作符权值 然后相减啊
```js function compare(op1, op2){ var weightMap = {"x":1, "/":1, "+":0 ,"-":0 }; return weightMap [op1] - weightMap [op2]; } ``` |
|
8
@xjp 是在下输了
|
|
zhidianJan 22, 2017
9
写好测试例子,然后 eval 不就可以了。比如:
> eval("1"+"+"+"2"+"*"+"3") 7 说明是 * 优先级高。 |
|
erlanyeJan 22, 2017
10
if else(或 switch case),没有比这个更优雅的了,上面的回复都是画蛇添足。
|
|
hxsfJan 22, 2017 via iPhone
11
在学编译原理?
定义个 运算优先级表 |