我也必须在面试中解决这个问题。两个值成为格雷码序列的条件之一是它们的值仅相差1位。这是解决此问题的方法:
def isGrayCode(num1, num2): differences = 0 while (num1 > 0 or num2 > 0): if ((num1 & 1) != (num2 & 1)): differences++ num1 >>= 1 num2 >>= 1 return differences == 1

我也必须在面试中解决这个问题。两个值成为格雷码序列的条件之一是它们的值仅相差1位。这是解决此问题的方法:
def isGrayCode(num1, num2): differences = 0 while (num1 > 0 or num2 > 0): if ((num1 & 1) != (num2 & 1)): differences++ num1 >>= 1 num2 >>= 1 return differences == 1