gpt4 book ai didi

algorithm - 检查输入字符串是否为正确的 RPN 表达式的最快方法是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:39:22 26 4
gpt4 key购买 nike

我遇到了一个任务,它让你检查作为参数传递给你的方法/函数的字符串是否是反向波兰表示法意义上的正确语句。它可以包含小写字母、运算符号和整数。有没有比分别读取每个字符并实际尝试计算整个表达式更快的方法来检查它?

最佳答案

您不必计算整个表达式,但您确实需要将其拆分为标记,并且您必须知道每个运算符的价数(即它需要多少个操作数)。为简单起见,设操作数的价为 0;然后执行以下操作:

Set stack_size to 0;
For Each token In expression:
Set stack_size to stack_size + 1 - valence(token)
If stack_size <= 0: Report failure
If stack_size == 1: Report success
Else : Report failure

使用 _ 作为一元减号的示例。

expression:     3 4 + 1 * _
stack_size: 0 1 2 1 2 1 1 -> success

expression: 2 3 4 + 1 * _
stack_size: 0 1 2 3 2 3 2 2 -> failure (not 1 at the end)

expression: 2 3 + + 1 * _
stack_size: 0 1 2 1 0 -> failure (stack_size <= 0)

关于algorithm - 检查输入字符串是否为正确的 RPN 表达式的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14506831/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com