我目前正在一个名为Singpath的网站上解决Python问题集。问题如下:
前缀表达式求值 创建一个函数,以前缀表示法计算算术表达式,不带空格或语法错误。该表达式作为字符串给出,表达式中的所有数字都是0~9的整数,运算符是+(加法)、-(减法)、*(乘法)、/(除法)、%(取模),其操作与Python中的操作完全相同。 前缀表示法,也称为波兰表示法,是一种用于逻辑、算术和代数的表示法。它将运算符放在它们的操作数左边。如果运算符的arity是固定的,则结果是一个无括号或其他括号的语法,仍然可以被解析而没有歧义。
这似乎很简单,但输入的字符串没有空格,如何分离数据?如何使用数据的结果来解决给定的方程?请注意,Singpath的解决方案必须在一个函数中完成,不能使用在标准Python库中找不到的方法。这还包括在解决方案中声明的函数:S
示例:
>>> eval_prefix("+34")
7
>>> eval_prefix("*−567")
-7
>>> eval_prefix("-*33+2+11")
5
>>> eval_prefix("-+5*+1243")
14
>>> eval_prefix("*+35-72")
40
>>> eval_prefix("%3/52")
1
请看我的观点,中间不要留空格 D: