如何使用 Python 来应用带括号的数学运算顺序对字符串进行重新排序?
让我举个例子:
"son(father(granpa)mother))" ===> "granpa father mother son"
Run Code Online (Sandbox Code Playgroud)
这个想法是使用标准数学顺序运算对原始字符串重新排序。在数学顺序运算中,括号具有最高优先级。让我用一个数学例子:
4 + (5 + (3 + 3)) = ((3 + 3) + 5 ) + 4 = 3 + 3 + 5 + 4 = 14
Run Code Online (Sandbox Code Playgroud)
编辑:这个例子只使用+,因为python总是在+之前做*,在同一个括号级别,这不是重点,重点是字符串中的顺序,因为只会连接结果重新排序。
目标是对包含变量的字符串进行重新排序,以研究操作的可能优化。我想要重新排序的字符串示例:
def xor_with_nands(a,b):
return f"~(~(~({a} & {b}) & {a}) & ~(~({a} & {b}) & {b}))"
>> xor_with_nands(0,1)
>> ~(~(~(0 & 1) & 0) & ~(~(0 & 1) & 1))
>> eval(xor_with_nands(0,1))
>> 1
Run Code Online (Sandbox Code Playgroud)
如果有一种方法可以创建一个函数,根据括号的数学顺序(只是括号,而不是其他数学运算顺序)对字符串进行重新排序,则可以分析某些过程中的优化。
我们的目标是获得一种工具,可以按执行顺序可视化嵌套逻辑操作,以便直观地理解它们并希望简化它们。
结论:调车场算法很棒。非常感谢!