![](https://img-blog.csdnimg.cn/20191114155121201.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Python
文章平均质量分 69
Python相关技术和应用
泰克尼客
这个作者很懒,什么都没留下…
展开
-
合并两个有序链表的方法
什么是合并两个有序链表假设有两条链表,这两条链表分别都是升序排列的,如下图所示:现在要求将二者合并成一条链表,并且该链表也是升序排列的,合并后的链表如下图所示:思路如果对归并排序有所了解,那么这个问题就很简单。在归并排序的递归过程中,我们的算法是将原始数组a切割成两段:a1和a2,对a1和a2分别排序后,再将二者归并成一个有序的数组。这里的思路是一样的,只不过将数组变成了链表。大体的思路是:确定合并后的新链表的头节点head使用一个指针l3,初始化为head,用这个指针来组织新链表的各个原创 2021-04-29 18:51:40 · 4248 阅读 · 0 评论 -
难倒Homebrew发明人的翻转二叉树到底有多简单?
什么是翻转二叉树大家都知道Homebrew发明人Max Howell面试谷歌时,被一道翻转二叉树的题目给难倒了。那么什么是翻转二叉树呢?看看下图就明白了。简单地说,就是对于一棵二叉树及其所有子树,交换其左右位置。思路首先,看到一棵二叉树时,我们不要被庞大的分支结构所吓倒,其实,其基本构成就是根节点、左子树、右子树这三个元素而已。大多数问题只需要考虑这三者之间的关系就能被解决;其次,对于树相关的问题,我们的第一反应是尝试能否通过递归的方法来实现。理清了二叉树的基本结构(根节点、左子树、右子树),原创 2021-04-29 18:50:32 · 562 阅读 · 0 评论 -
反转链表及其考察的知识点
什么是反转链表如下图所示,原来的链表指向性是从第一个节点1依次指向最后一个节点5,反转链表后,要让原来的链表中的最后一个节点变成第一个节点,并逆转整个链表的指向性。考察的知识点链表相关的操作,难度都不大,但很能够考察思维的严密性,主要体现在:处理每个节点时,各个操作的先后顺序;边界情况的考虑,例如,对于头节点和尾节点的考虑是否完善。如果能充分考虑以上两点,那么链表相关的操作就大体没有问题了。思路当我们遍历到某一个节点cur时,面临的情况如下:根据题意,我们的目标是:让cur节点原创 2021-04-29 18:49:10 · 192 阅读 · 0 评论 -
栈的最简应用:leetcode #1544之整理字符串
什么是栈?栈是大家很熟悉的一种数据结构了,人们之所以使用栈,就是为了使用其后进先出的特性。入栈和出栈是栈的两个灵魂操作。如图所示,以Python中的list模拟栈结构,原始list是[1,2],通过两次push()操作,我们先后将3,4这两个元素加入到list中,这个操作被称作压栈,之后我们再对list施加两次pop()操作来模拟出栈,值得注意的是,元素4虽然是最后被压栈的元素,但却是第一个出栈的元素,这就是我们所说栈结构的后进先出的特性。leetcode #1544之整理字符串原题如下:给你原创 2021-04-29 17:21:59 · 216 阅读 · 4 评论 -
汉明距离及其高效计算方式
什么是汉明距离下面引用自维基百科:在信息论中,两个等长字符串之间的汉明距离(英语:Hamming distance)是两个字符串对应位置的不同字符的个数。换句话说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。对于两个数字来说,汉明距离就是转成二进制后,对应的位置值不相同的个数。例如,假设有两个十进制数a=93和b=73,如果将这两个数用二进制表示的话,有a=1011101、b=1001001,可以看出,二者的从右往左数的第3位、第5位不同(从1开始数),因此,a和b的汉明距离是2。原创 2021-04-29 17:19:05 · 4509 阅读 · 0 评论 -
pip命令更换国内镜像源加快下载速度
官方的pypi源访问实在痛苦,经常抽风,因此更换成国内源迫在眉睫。以豆瓣提供的源为例,有两种方法:通过命令临时指定源:pip install flask -i http://pypi.douban.com/simple --trusted-host pypi.douban.com注意加上--trusted-host选项是为了在使用非HTTPS协议的情况下将源加入信任列表。通过生成...原创 2019-11-06 14:06:52 · 3488 阅读 · 1 评论 -
Python使用string.Formatter()制作打印模板
工作时,会希望使用统一的打印模板来处理散落在各处的打印需求,尤其是在记录日志时,如果直接使用print函数,那么代码会显得尤其繁琐。这时,比较好的做法是编写一个函数来进行封装。而Python的string.Formatter类提供了字符串格式化功能。制作字符串模板后,通过调用format(value[, format_spec])方法,就可以依照模板生成一个格式化的字符串,而这个字符串再结合pri...原创 2019-11-06 15:06:16 · 1201 阅读 · 0 评论 -
用Python爬虫获取NBA球员的生涯数据
NBA球迷往往对球员的各项数据以及对应的排名很感兴趣,而basketball-reference.com这个网站的数据十分详尽。为方便浏览,我在github建了一个项目,借助该网站提供的数据来汇总某个球员的最新生涯数据,项目链接在此。本文介绍一下思路和使用方法。思路思路非常简单,首先使用requests库来抓取相关的网页,之后用beautifulsoup这个库来解析html文件,用以解析所需的...原创 2019-11-06 14:51:10 · 3590 阅读 · 0 评论 -
pyenv使用国内镜像安装指定的Python版本
直接使用pyenv install命令安装Python时,默认从python.org下载指定版本,会非常的慢。[root@localhost ~]# pyenv install 3.5.2Downloading Python-3.5.2.tar.xz...-> https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tar.xz可...原创 2019-11-06 14:09:26 · 4524 阅读 · 0 评论 -
CentOS 7安装Python3开发包
在CentOS 7上使用Python3,安装相关软件时可能会使用到Python3开发包,在Ubuntu上可以直接使用如下命令安装:apt-get install python3-dev而在CentOS7上,官方源没有这个组件,需要安装EPEL源,里面有一个python34-devel的包可以使用:# 安装EPEL源yum install epel-release -y# 安装pytho...原创 2019-11-06 14:04:12 · 1159 阅读 · 0 评论