题目给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[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 1818
PyGame是一个Python的库,能够让你更容易的写出一个游戏。它提供的功能包括图片处理和声音重放的功能,并且它们能很容易的整合进你的游戏里。去官网点击这里下载适合你的PyGame安装包。大家可以参阅:Python中pygame安装方法图文详解我们就拿打飞机来做个例子1.创建游戏框架以及游戏背景#这个模块放一些常用的工具和基础类和精灵类#在其他模块调用importpygameimportrandom#设置游戏屏幕大小这是一个常量SCREEN_RECT=p
系统 2019-09-27 17:56:17 1818
定制pattern的string模板(template)详解string.Template的pattern是一个正则表达式,可以通过覆盖pattern属性,定义新的正则表达式.如:使用新的定界符"{{",把{{var}}作为变量语法.代码:#-*-coding:utf-8-*-'''''Createdon2014.6.5@author:Administrator@edition:python3.3.0,eclipsepydev'''importstring
系统 2019-09-27 17:56:16 1818
1、概述1.1场景我们在使用Python中的方法method时,经常会看到参数中带有self,但是我们也没对这个参数进行赋值,那么这个参数到底是啥意思呢?2、知识点2.1成员函数(m)和普通方法(f)Python中的"类方法"必须有一个额外的第一个参数名称(名称任意,不过推荐self),而"普通方法"则不需要。m、f、c都是代码自动提示时的左边字母(method、function、class)#-*-coding:utf-8-*-classTest(obj
系统 2019-09-27 17:56:05 1818
本文实例讲述了Python使用字典实现的简单记事本功能。分享给大家供大家参考,具体如下:fromtimeimportsleep,strftimeuser="Cytus"calendar={}defwelcome():print"Welcometousethiscalendar.%s"%userprint"Calendarisopening."sleep(1)printstrftime("%A%B%d%Y")printstrftime("%H:%M:%S")
系统 2019-09-27 17:56:03 1818
在帮朋友解决这个问题后,随便记录一下这三种方法:第一种方法:使用正则表达式:因为当时的要求是判定10.0.0.1到10.255.255.255,原理其实是一样。这里简单回顾一下正则表达式模式的内容:常见的如:\d可以表示0~9的任意一个数字字符而\D是匹配一个非数字字符等价于^^是匹配字符串的开头,但放在[]中表示匹配不在[]中的字符$是匹配字符串的末尾.是匹配除了换行符任意字符{}表示重复几次,例如:^a{2,4}$aa,aaa或aaaa|的是或的意思[
系统 2019-09-27 17:55:59 1818
本文实例讲述了python根据路径导入模块的方法,分享给大家供大家参考。具体方法如下:常规做法如下:importsyssys.path.append('C:/full/path')fromfooimportutil,bar而要直接通过路径importimputil=imp.load_source('util','C:/full/path/foo/util.py')使用时使用util.method,此时并没有定义methodmethod=util.metho
系统 2019-09-27 17:55:56 1818
当类间继承关系很简单时,super()的使用很简单。classA(object):def__init__(self):print('a')classB(A):def__init__(self):super(B,self).__init__()print('b')b=B()输出结果:ab当一个类继承多个类时,问题就复杂起来了,请看下例:classA(object):def__init__(self):print('a')classB(object):def_
系统 2019-09-27 17:55:42 1818
在有些情况下,存储数据的内存分配不能位于连续的内存块中。所以我们接受指针的帮助,其中数据和数据元素的下一个位置的地址也被存储。所以我们从当前数据元素的值中知道下一个数据元素的地址。通常这样的结构被称为指针。但在Python中,我们将它们称为节点。节点是各种其他数据结构链接列表和发can可以在python中处理的基础。创建节点这些节点是通过实现一个将保存指针和数据元素的类来创建的。在下面的例子中,我们创建了一个名为daynames的类来保存星期几的名称。ne
系统 2019-09-27 17:55:33 1818
锁在使用用的过程中需要导入threading模块的Lock类使用锁:当多个线程几乎同时修改某一个共享数据的时候,需要进行同步控制线程同步能够保证多个线程安全访问竞争资源,最简单的同步机制是引入互斥锁。互斥锁为资源引入一个状态:锁定/非锁定。锁的语法创建锁、锁定锁、释放锁fromthreadingimportLock#创建锁mutex=Lock()#获取锁(上锁)mutex.acquire()#释放锁(解锁)mutex.release()在锁定锁的过程中ac
系统 2019-09-27 17:55:04 1818