题目给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7],3/920/157返回它的最大深度3。思路BFS广度优先搜索,使用双端队列deque(因为性能比另外两种Queue好得多),在大循环内对二叉树的每个层做一次遍历,range(len(queue))使只遍历当前的层,每次大循环ans加1。由于每个节点仅访问一次,所以时间
系统 2019-09-27 17:56:23 1761
Python字符串(string)详解及代码Python的字符串可以使用单引号('),双引号("),三引号(''');三引号(''')里面,可以添加单引号和双引号,也可以通过转义序列(\)添加;字符串放在一起自动连接成为一个字符串;字符串前面添加限定词R或r,表示是自然字符串(naturestring),可以忽略里面的格式限制;在物理行末尾添加"\",可以连接下一个物理行;括号,方括号,大括号也可以一定限度的扩充物理行;具体参见代码注释;代码如下:#-*-
系统 2019-09-27 17:56:15 1761
这篇文章将解除你使用python的pipinstallxxx受到的网速限制,如果只是下载较小的第三方库,可以尝试pip--default-timeout=100install-Uxxx。一、Windows找到python安装目录下的:\Lib\site-packages\pip\models\index.py文件,将PYPI的值改为你所需要的镜像源即可,例如改为豆瓣镜像源:#PyPI=Index('https://pypi.python.org/')PyP
系统 2019-09-27 17:55:57 1761
try:print('1111')#1/0print('2222')#name#2+'3'#[][3]#{}['k']ret=int(input('number>>>'))print(ret*'*')exceptValueError:print('输入的数据类型有误')exceptException:print('你错了,老铁')else:print('没有异常的时候执行else中的代码')print('===========')deffunc():try
系统 2019-09-27 17:55:50 1761
对于普通的生成器,第一个next调用,相当于启动生成器,会从生成器函数的第一行代码开始执行,直到第一次执行完yield语句(第4行)后,跳出生成器函数。然后第二个next调用,进入生成器函数后,从yield语句的下一句语句(第5行)开始执行,然后重新运行到yield语句,执行后,跳出生成器函数,后面再次调用next,依次类推。下面是一个列子:defconsumer():r='here'foriinxrange(3):yieldrr='200OK'+str(
系统 2019-09-27 17:55:41 1761
本文实例讲述了python3生成随机数的方法。分享给大家供大家参考。具体实现方法如下:该实例是根据一本书上看到过一个随机数的小程序,经过自己改动,变为了一个猜数字的小游戏,现在在python3下重写了一遍。这是一个控制台下的猜数程序,winxp+python3.2+eric5和IDLE测试通过,但直接用winxp的命令行运行有问题,原因还未知,慢慢找。ubuntu+python3.1测试通过。具体实现代码如下:复制代码代码如下:#-*-coding:utf
系统 2019-09-27 17:55:11 1761
目录一、概论二、方法论三、实践能力一、概论深入理解Python语言实例2:Python蟒蛇绘制模块1:turtle库的使用turtle程序语法元素分析二、方法论Python语言及海龟绘图体系三、实践能力初步学会使用Python绘制简单图形
系统 2019-09-27 17:55:09 1761
本文原创并首发于公众号【Python猫】,未经授权,请勿转载。原文地址:https://mp.weixin.qq.com/s/-f...Python是一门强大的动态语言,那动态体现在哪里,强大又体现在哪里呢?除了好的方面,Python的动态性是否还藏着一些使用陷阱呢,有没有办法识别与避免呢?沿着它的动态特性话题,猫哥有几篇文章依次探及了:动态修改变量、动态定义函数、动态执行代码等内容,然而,当混合了变量赋值、动态赋值、命名空间、作用域、函数的编译原理等等内
系统 2019-09-27 17:55:00 1761
目录一、进程同步二、为什么需要进程同步三、Python中实现进程同步四、多进程模拟同时抢票4.1通过锁控制进程资源访问总结尽管并发编程让我们能更加充分的利用IO资源,但是也给我们带来了新的问题:当多个进程使用同一份数据资源的时候,就会引发数据安全或顺序混乱问题。一、进程同步多个进程同时执行,为了相互制约各进程对资源的访问,使得各个进程的执行相互同步。在我的理解里,进程同步也算是进程间通讯(ipc)的一种手段。二、为什么需要进程同步多进程会引发抢占资源的问题
系统 2019-09-27 17:54:58 1761
本文实例讲述了python实现无证书加密解密的方法,分享给大家供大家参考。具体实现方法如下:无证书加密就是双方不需要维护证书,加密与解密只需要双方约定一个key就可以,无证书加解密的方式应用更广泛一些,python官方也有这方面的相关例子说明,地址是:https://pypi.python.org/pypi/pycrypto,主要用的是fromCrypto.CipherimportAES这个模块,代码如下:复制代码代码如下:'''/***AES加密字符串*
系统 2019-09-27 17:54:57 1761
基于python-opencv3的图像显示和保存操作,具体代码如下所示:importcv2ascvimportnumpyasnp#导入库print("-------------------------------")image=cv.imread("D:/1.jpeg")#写入图像cv.imshow("image",image)#显示cv.waitKey()#等待cv.destroyAllWindows()#关闭所有窗口cv.imwrite("D:\\2.
系统 2019-09-27 17:54:55 1761
vim有各种强大的插件,这不仅归功于其提供的用来编写插件的脚本语言vimL,还得益于它良好的接口实现,从而支持python等语言编写插件。当vim编译时带有+python特性时就能使用python2.x编写插件,+python3则支持python3.x,可以使用vim--version来查看vim的编译特性。要使用python接口,可以用:hpython来查看vim提供的帮助文档,本文做一个简单的介绍。我们都知道在vim里可以执行bash命令,只需要:!c
系统 2019-09-27 17:54:51 1761
阅读更多#1-20的列表a=list(range(1,21))print(a)#1-10000的列表squares=[]forvalueinrange(1,10001):square=valuesquares.append(square)print(squares)#1-10000的列表,核实从1开始10000结束,求1-10000之和a=list(range(1,10001))print(a)print(min(a))print(max(a))print
系统 2019-09-27 17:54:51 1761
认识错误编写的程序不能正常执行,或者执行的结果不是我们期望的,俗称BUG,是程序员在开发时非常常见的,初学者常见错误的原因包括:手误对已经学习过的知识理解还存在不足对语言还有需要学习和提升的内容在学习语言时,不仅要学会语言的语法,而且还要学会如何认识错误和解决错误的方法每一个程序员都是在不断地修改错误中成长的常见错误:1>手误2>将多条print写在一行每行代码负责完成一个动作3>缩进错误Python是一个格式非常严格的程序设计语言4>python2.x默
系统 2019-09-27 17:54:37 1761
本文实例讲述了python3实现的对象与json相互转换操作。分享给大家供大家参考,具体如下:1.python主要有三种数据类型:字典、列表、元组,其分别由花括号,中括号,小括号表示。例如:字典:dictData={'a':12,'b':34}列表:listData=[1,2,3,4]元组:tupleData=(1,2,3,4)2.使用json时,导入importjson即可3.python对象转json字符串,主要用到的函数:json.dumps()。例
系统 2019-09-27 17:54:24 1761