问题标签 [prefix-notation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 在 Python 中为中缀表示法添加前缀表示法
我正在编写一个小型计算器(带有前缀符号),我很好奇如何将前缀符号转换为中缀符号。我目前有一个功能,但它很奇怪,我不知道如何修复它。通过变得奇怪,我的意思是如果给出['+', x, y]
它会返回(() + x + () + y)
,这让我感到困惑。这是代码。
我究竟做错了什么?
syntax - 伪代码变成逻辑步骤?
我正在尝试解决硬币找零问题:
给定一个数字 k 的列表,有多少种方法可以改变给定的数量 m。
作为资源之一,我有以下伪代码:
但是我不明白这个伪代码。当它们应该在后面时,它在前面有算术符号。我了解 else 语句开始的地方。但是当进入 else 循环时,我不知道发生了什么。您能否将此伪代码简化为在 else 子句之后的每个步骤中要做的一些逻辑事情?
或者有什么文章比这个伪代码解决这个问题更有用。谷歌搜索这个我只发现要求你给出最佳改变的问题,但我不需要那个。
注意请不要给我代码,因为这是一个 coursera 课程,直接回答会违反荣誉代码。
更新 正如@EmilVikström 亲切地向我解释了那里到底发生了什么,我试图生成一个应该与方案相同的小伪代码(这只是 else 子句,因为其余的甚至是不言自明的我)。
这是计划的结果吗?如果不是我哪里出错了?请再次不要给我答案(如果可以的话,请指出我正确的方向),因为这将违反 coursera 荣誉守则。
postfix-notation - 如何检查给定的表达式是中缀表达式、后缀表达式还是前缀表达式?
我需要检查给定表达式是中缀、后缀还是前缀表达式的算法。我通过检查字符串的第一个或最后两个术语尝试了一种方法,例如
+AB 如果字符串的第一个索引中有一个运算符,那么它是一个前缀
AB+ 如果字符串的最后一个索引中有一个运算符,那么它是一个后缀
否则它是一个中缀。
但这感觉不合适,所以请建议我一个更好的算法。
c++ - 带括号的前缀到后缀转换
我真的被困在我们任务的特殊前缀到后缀操作的转换中,让我类似地描述一下这个任务:
我们有这样的操作用作前缀中的操作,这是我正在检查它们的方法:
无论如何,示例前缀指令可以有括号来使操作优先,这就是我所坚持的。我知道,我需要实现这样的递归,但我找不到方法。
输出应该是
另一个例子 :
输出
在假定条件下,每个操作、括号或数字都应该在元素之间留有空格。
我的堆栈实现
堆栈.h
堆栈.cpp
正如@PaulMcKenzie 提到的,我在下面尝试了一个实现, sub_array 字符串数组包含不带空格的单词列表。
变量后缀是指输出后缀,但是我的输出对于一些操作没有错,比如:
当我看到一个括号时,我正在检查它是左还是右,使用右一个作为触发器。
预期输出为:
更新:我自己解决了堆栈问题,但发现算法错误地计算了一些表达式......
示例表达式:
预期输出:
我的输出:
我的算法使用右括号作为触发器计算错误,我不知道如何实现这个控件,有什么建议吗?
c++ - 中缀/后缀/前缀程序。想要使用我的 printResult() 函数打印结果。需要帮助获得输出
我的问题是我不知道如何从这里得到任何输出。到目前为止,我想使用 printResult() 打印后缀结果。我该怎么做?我不确定如何计算我在 inToPost() 函数中得到的结果,这应该是转换为后缀的结果。谢谢。
c++ - 导致错误的后缀和前缀增量
为什么该代码由于错误而无法编译:
虽然该代码确实编译:
我不明白这个。从我的角度来看,编译第一个块是非常合理的。表达式 ++(i++) 仅表示取 i,将其递增并输出,然后再次递增。
我不是在询问 int 溢出中的未定义行为。在撰写问题时,我根本不知道 r 和 l 值,我也不关心为什么 ++i 被认为是 l 值,但 i++ 不是。
infix-notation - 波兰符号表达式(需要一点帮助)**/^a-bc+d*ef**
我对这个表达有点困惑
在这里我很困惑,我该怎么办?请需要帮助。
现在我该怎么办?应该/^a-bc+d+(e*f)
这样好吗?
(b-c)
/^a(b-c)
那么和之间应该有什么符号d+(e*f)
?
我/^a
知道如果^23=2^3=8
但在这里我完全受够了。请指导我哪里错了。
javascript - 在 JavaScript 中从中缀转换为前缀表示法
请在 JavaScript 中帮助我:我正在编写的程序是一个以前缀表示法接收表达式并以中缀表示法输出相同表达式的程序。这个程序背后的想法如下:
如果用户输入1 + 2
预期的输出是+ 1 2
. 所有有效符号都是+, -, *, /, and %
. 用户可以输入的数字数量应该是无限的(例如,如果我输入1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10
,程序应该返回+ 1 2 3 4 5 6 7 8 9 10
)。
有人可以帮我填写循环的注释部分,如果您认为有更好的方法完全解决这个问题,我愿意接受!
javascript - 前缀符号的简化
我正在研究一个 Kattis问题,我应该以前缀表示法接受输入,将其简化并以前缀表示法返回。这些是输入和输出的示例:
我已经编写了这段代码,如果我使用这种输入数据运行它,我会得到与上述完全相同的输出。然而,我从 Kattis 那里得到了错误的答案。
我在这里做错了什么?这是令人沮丧的,因为您没有得到调试提示。
c++ - 是否可以使用前缀表示法调用 << 运算符?
我想知道我是否可以写,例如:<<(object, cout);
或者<<(cout,object);
object 是一个用户定义的类,它有<<
运算符重载,就像人们可以写:
int a = +(2,3);
并获得预期的结果,如int a = 2 + 3;
. 此外,如果这是可能的,但需要几个步骤,应该怎么做?是否应该<<
使用两种不同的签名使运算符重载?