1.问题描述
实现格雷码,格雷码的介绍。
2.问题分析
格雷码可以看成是由[0,1]每次对称性的在前面加0和1生成的,所以可以利用递归进行实现。
3.问题解决
class GrayCode:
def getGray(self, n):
if(n==1):
return ["0","1"]
else:
List=self.getGray(n-1)
length=len(List)
newList=[0]*length#新增一半的数字,用来在后面加1
for i in range(length):
temp=List[i]#取临时变量用来暂存现有
List[i]="0"+temp#前一半数加0
newList[length-1-i]="1"+temp#后一半数加1
return List+newList
4.参考资料
1)https://blog.youkuaiyun.com/beiyeqingteng/article/details/7044471