小编use*_*468的帖子

收益率与收益率的结果不同

我真的不明白yield声明在这种情况下是如何运作的.问题是,给定一个没有括号的表达式,编写一个函数来生成所有可能的完全括号(FP)表达式.比如,输入'1+2+3+4'应该生成5个FP表达式:

  1. (1+(2 +(3 + 4)))
  2. (1 +((2 + 3)4))
  3. ((1 + 2)+(3 + 4))
  4. ((1+(2 + 3))+ 4)
  5. (((1 + 2)3)4)

我的代码如下.

OPS = ('+', '-', '*', '/')
def f(expr):
    """
    Generates FP exprs
    Recursive formula: f(expr1[op]expr2) = (f(expr1) [op] f(expr2))
    """
    if expr.isdigit(): yield expr
#       return [expr]

#   ret = []
    first = ''
    i = 0
    while i < len(expr):
        if expr[i] not in OPS:
            first += expr[i]
            i += 1
        else:
            op …
Run Code Online (Sandbox Code Playgroud)

python recursion yield

5
推荐指数
1
解决办法
1194
查看次数

标签 统计

python ×1

recursion ×1

yield ×1