operators.py 文件源码

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

项目:Gaia 作者: splcurran 项目源码 文件源码
def KOperator(stack, x, y, mode):
    if mode == 1:   # num, num
        n = int(x)
        k = int(y)
        if k < 0 or k > n:
            stack.append(0)
        else:
            stack.append(math.factorial(n)/(math.factorial(k)*math.factorial(n-k)))
    #elif mode == 2: # num, str
    elif mode == 3 or mode == 7: # num, list
        n = int(x if mode == 3 else y)
        l = y if mode == 3 else x

        def subsets(l, n):
            if n > len(l) or n < 0:
                return []
            elif n == len(l):
                return [l]
            elif n == 0:
                return [[]]
            elif n == 1:
                return [[i] for i in l]
            else:
                result = []
                for i in range(len(l)-n+1):
                    result += [[l[i]] + s for s in subsets(l[i+1:], n-1)]
                return result

        stack.append(subsets(l, n))
    #elif mode == 4: # str, num
    elif mode == 5: # str, str
        stack.append(''.join(c for c in x if c in y))
    #elif mode == 6: # str, list
    #elif mode == 8: # list, str
    elif mode == 9: # list, list
        stack.append([i for i in x if i in y])
    else:
        dyadNotImplemented(mode, '')

# ?
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号