Python实现的生成格雷码功能示例
2018-01-24 11:12
771 查看
问题
在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码。
解决方法:
给定一个整数n,请返回n位的格雷码,顺序为从0开始。
测试样例:
返回:["0","1"]
题目很刁钻,题干很简洁,样例很高冷……
其中有一些微妙的关系
发现了这个规律之后,代码自然就很好写了
# -*- coding:utf-8 -*- class GrayCode: def getGray(self, n): # write code here global maxn maxn = n return GrayCode.getGrace(self, ['0', '1'], 1) def getGrace(self, list_grace, n): global maxn if n >= maxn: return list_grace list_befor, list_after = [], [] for i in xrange(len(list_grace)): list_befor.append('0' + list_grace[i]) list_after.append('1' + list_grace[-(i + 1)]) return GrayCode.getGrace(self, list_befor + list_after, n + 1) gary = GrayCode() print "脚本之家测试结果:" print gary.getGray(3)
运行结果:
更多关于Python相关内容可查看本站专题:《Python字符串操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- Python实现随机生成有效手机号码及身份证功能示例
- Python实现的双色球生成功能示例
- Python实现PS滤镜碎片特效功能示例
- Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
- Python实现的根据文件名查找数据文件功能示例
- Python爬虫实现网页信息抓取功能示例【URL与正则模块】
- Python使用微信SDK实现的微信支付功能示例
- Python实现的根据IP地址计算子网掩码位数功能示例
- Python通过调用mysql存储过程实现更新数据功能示例
- Python使用tkinter库实现文本显示用户输入功能示例
- Java实现的不同图片居中剪裁生成同一尺寸缩略图功能示例
- Python实现的爬虫刷回复功能示例
- Python实现嵌套列表及字典并按某一元素去重复功能示例
- Python实现的计算器功能示例
- Python实现PS滤镜功能之波浪特效示例
- Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
- PHP实现生成数据字典功能示例
- Python网络编程使用select实现socket全双工异步通信功能示例
- Python实现SQL查询功能示例
- Python爬虫框架scrapy实现的文件下载功能示例