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中去空格函数的用法
Aug 21 Python
python2.7的flask框架之引用js&css等静态文件的实现方法
Aug 22 Python
解决django接口无法通过ip进行访问的问题
Mar 27 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
Mar 30 Python
python变量的作用域是什么
May 26 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
Oct 15 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
Nov 25 Python
Python图像读写方法对比
Nov 16 Python
python中pickle模块浅析
Dec 29 Python
Python实现Appium端口检测与释放的实现
Dec 31 Python
python glom模块的使用简介
Apr 13 Python
如何Python使用re模块实现okenizer
Apr 30 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
Terran剧情介绍
2020/03/14 星际争霸
PHP4 与 MySQL 数据库操作函数详解
2006/12/06 PHP
php上传文件的增强函数
2010/07/21 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
2016/11/07 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
php递归函数怎么用才有效
2018/02/24 PHP
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
2010/10/14 Javascript
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
AngularJS基础知识笔记之表格
2015/05/10 Javascript
jQuery支持添加事件的日历特效代码分享(3种样式)
2015/08/24 Javascript
JavaScript中的事件委托及好处
2016/07/12 Javascript
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
2016/11/10 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
jquery ajaxfileupload异步上传插件
2017/11/21 jQuery
微信小程序基于Taro的分享图片功能实践详解
2019/07/12 Javascript
js实现点击烟花特效
2020/10/14 Javascript
[52:22]EG vs VG Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
Python 字符串大小写转换的简单实例
2017/01/21 Python
关于Python3 lambda函数的深入浅出
2019/11/27 Python
python 比较字典value的最大值的几种方法
2020/04/17 Python
python except异常处理之后不退出,解决异常继续执行的实现
2020/04/25 Python
巴西箱包、背包、钱包和旅行配件购物网站:Inovathi
2019/12/14 全球购物
德国50岁以上交友网站:Lebensfreunde
2020/03/18 全球购物
行政助理的岗位职责
2014/02/18 职场文书
文体活动实施方案
2014/03/27 职场文书
三分钟演讲稿范文
2014/04/24 职场文书
旅游节目策划方案
2014/05/26 职场文书
法院授权委托书范文
2014/08/02 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
停电调休通知
2015/04/16 职场文书
中标通知书格式
2015/04/17 职场文书
python第三方网页解析器 lxml 扩展库与 xpath 的使用方法
2021/04/06 Python
Jupyter Notebook内使用argparse报错的解决方案
2021/06/03 Python