Python实现的生成格雷码功能示例


Posted in Python onJanuary 24, 2018

本文实例讲述了Python实现的生成格雷码功能。分享给大家供大家参考,具体如下:

问题

在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码。

解决方法:

给定一个整数n,请返回n位的格雷码,顺序为从0开始。

测试样例:

返回:["0","1"]

题目很刁钻,题干很简洁,样例很高冷……

Python实现的生成格雷码功能示例

其中有一些微妙的关系

Python实现的生成格雷码功能示例

发现了这个规律之后,代码自然就很好写了

# -*- 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根据经纬度计算距离示例
Feb 16 Python
sublime text 3配置使用python操作方法
Jun 11 Python
Python编程实现控制cmd命令行显示颜色的方法示例
Aug 14 Python
Python如何快速上手? 快速掌握一门新语言的方法
Nov 14 Python
python 读取文件并把矩阵转成numpy的两种方法
Feb 12 Python
Python面向对象进阶学习
May 21 Python
PyQt5 QTableView设置某一列不可编辑的方法
Jun 25 Python
django使用haystack调用Elasticsearch实现索引搜索
Jul 24 Python
pandas 如何分割字符的实现方法
Jul 29 Python
OpenCV+Python--RGB转HSI的实现
Nov 27 Python
深入了解python列表(LIST)
Jun 08 Python
Python爬取酷狗MP3音频的步骤
Feb 26 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
Jan 24 #Python
Python3结合Dlib实现人脸识别和剪切
Jan 24 #Python
深入浅析Python中的yield关键字
Jan 24 #Python
Python3.6安装及引入Requests库的实现方法
Jan 24 #Python
pycharm+django创建一个搜索网页实例代码
Jan 24 #Python
Python数据类型中的“冒号“[::]——分片与步长操作示例
Jan 24 #Python
Sublime开发python程序的示例代码
Jan 24 #Python
You might like
dedecms 制作模板中使用的全局标记图文教程
2007/03/11 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
php解决约瑟夫环算法实例分析
2019/09/30 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
js函数使用技巧之 setTimeout(function(){},0)
2009/02/09 Javascript
javascript中callee与caller的用法和应用场景
2010/12/08 Javascript
JQuery操作tr和td内容的方法实例
2013/03/06 Javascript
js中的getAttribute方法使用示例
2014/08/01 Javascript
利用jquery操作Radio方法小结
2014/10/20 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
2015/09/11 Javascript
学习jQuey中的return false
2015/12/18 Javascript
详谈js遍历集合(Array,Map,Set)
2017/04/06 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
JQuery 选择器、DOM节点操作练习实例
2017/09/28 jQuery
js实现数组内数据的上移和下移的实例
2017/11/14 Javascript
微信小程序按钮去除边框线分享页面功能
2018/08/27 Javascript
vue keep-alive 动态删除组件缓存的例子
2019/11/04 Javascript
jQuery操作事件完整实例分析
2020/01/10 jQuery
简单学习Python time模块
2016/04/29 Python
python3使用QQ邮箱发送邮件
2020/05/20 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
Python中list循环遍历删除数据的正确方法
2019/09/02 Python
python两个_多个字典合并相加的实例代码
2019/12/26 Python
Python‘==‘ 及 ‘is‘相关原理解析
2020/09/05 Python
利用Python优雅的登录校园网
2020/10/21 Python
澳大利亚网上买书:Angus & Robertson
2019/07/21 全球购物
2014年元旦感言
2014/03/06 职场文书
人力资源管理专业毕业生自荐书
2014/05/25 职场文书
电子信息工程专业求职信
2014/06/28 职场文书
2014年就业工作总结
2014/11/26 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
仓库统计员岗位职责
2015/04/14 职场文书
整脏治乱工作简报
2015/07/21 职场文书
同学联谊会邀请函
2019/06/24 职场文书
pycharm 如何查看某一函数源码的快捷键
2021/05/12 Python
Nginx的基本概念和原理
2022/03/21 Servers