operators.py 文件源码

python
阅读 28 收藏 0 点赞 0 评论 0

项目:Gaia 作者: splcurran 项目源码 文件源码
def fHighDotOperator(stack, z, mode):
    if mode == 1:   # num
        def subfactorial(n):
            soFar = [1, 0]
            if n < 0:
                raise ValueError("can't comput subfactorial of negative number")
            if n < 2:
                return soFar[n]

            i = 2
            while i <= n:
                soFar.append((i-1)*(soFar[i-1]+soFar[i-2]))
                i += 1

            return soFar[-1]

        stack.append(subfactorial(int(z)))
    elif mode == 2: # str
        stack.append([''.join(p) for p in itertools.permutations(z) if all(''.join(p)[i] != z[i] for i in range(len(z)))])
    elif mode == 3: # list
        stack.append([list(p) for p in itertools.permutations(z) if all(list(p)[i] != z[i] for i in range(len(z)))])
    else:
        monadNotImplemented(mode, '')

# ?
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号