CSP认证201903-2 二十四点

CSP认证201903-2 二十四点

可以看到,这个问题就是简单的表达式求值,而且只有4个数,没有括号,可以用栈很简单的解决

步骤说明:

  1. 使用两个栈,一个保存操作数,一个保存运算符。
  2. 扫描表达式字符串,如果是数字,则将数字入栈。
  3. 如果是运算符,则需要看优先级;如果这是第一个运算符或者这个运算符的优先级比栈顶的运算符的优先级更高,则将这个运算符入栈。
  4. 如果扫描到一个运算符A,运算符A的优先级不大于栈顶的运算符top的优先级,则将top弹出,然后弹出两个操作数进行运算,将结果入栈,最后将运算符A压入栈中。
  5. 如果字符串扫描完毕,但是运算符栈仍然不空,则弹出一个运算符,弹出两个操作数,运算后将结果入栈,循环操作,直至运算符栈为空。

总结步骤

  1. 扫描到数字入栈
  2. 扫描到操作符,一定会入栈,入站之前判断是否需要弹出栈顶的操作符。
  3. 扫描完毕,清空(弹出一个运算符,弹出两个操作数&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值