0

如何在 python 中实现以下算法:

在此处输入图像描述来源

def getGraycodeRank(n, t):
    r = 0#range
    b = 0
    for i in reversed(range(0, n)):
        if n - i IS IN t: #how to check it?
            b = 1-b
        if b == 1:
            r += 2^i
    return r
4

2 回答 2

0

您可以使用in运算符:

if (n - i) in t:

或者干脆

if n - i in t:

此外,运营商^不会按照您的想法行事。要获得数字的幂,请使用**

r += 2**i

笔记:

  • in运算符将使用元组、列表、字典、字符串。

编辑:

由于t是字符串,要检查整数 ( n - i) 是否包含在 中t,您必须将整数转换n - i为字符串:

if str(n - i) in `t`:
    # ...
于 2014-04-05T07:50:03.420 回答
0

假设t是一个dictlist

if (n - i) in t:

这应该工作......

于 2014-04-05T07:52:05.180 回答