自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 判断一个链表是否是回文结构 Python 版

题目: 判断一个链表是否是回文结构,如果是返回 True,否则返回 False 比如,给出一个链表为[2, 5, 12, 198, 12, 5, 2],返回 True, 给定链表[2, 5, 12, 198, 12, 54, 20],返回 False。方法1:空间复杂度为 o(n),使用一个栈,将链表中的数据全部push 到栈里,然后再迭代一遍链表,取出栈里的值逐个相互比较,如果不一样则说明不

2017-11-29 23:59:29 3090

原创 反转部分单向链表 Python 版

题目: 给定一个单链表的头指针 head, 以及两个整数 a 和 b,在单链表中反转 linked_list[a-b] 的结点,然后返回整个链表的头指针。 例如: 单链表[1000, 5, 12, 100, 45, ‘cecil’, 999], a = 4, b = 6, 返回的链表是[1000, 5, 12, 100, 999, ‘cecil’, 45],也就是说, a 和 b分别为索

2017-11-28 23:36:22 960

原创 逆序反转单链表 Python 版

题目: 给定一个单向链表的头指针,给出其反向链表。 例如,给定[1, 5, 12, 22, 33, 45],返回[45, 33, 22, 12, 5, 1]代码:class LinkedListAlgorithms(object): def __init__(self): pass def reverse_linked_list(self, head): # 将链表

2017-11-28 21:50:39 2832

原创 删除链表中的中间节点和 a/b 处的结点 Python 版

题目: 给定一个链表的头结点 head,实现删除链表中的中间节点的函数。 例如:给定链表[1, 5, 12, 33, 45, 171, 999, 1001, 2000],删除结点 45, 给定链表[1, 5, 12, 33, 45, 171, 999, 1001],删除结点 33。 如果链表为空或长度为1,则不删除任何结点。 拓展: 给定一个链表的头结点 head,整数 a 和 b,实现

2017-11-28 20:51:41 622

原创 【数据结构】查找算法 Python 版

我自己写了一个 Python 类,里面放了各种查找算法的代码,并且总结了所有常见的查找算法的基本思想、特点、适用情况等等。通过 __doc__ 方法可以查看代码里的说明和介绍。写代码的时候参考了[Data Structure & Algorithm] 七大查找算法。这个作者用的是C++,但是我看他的代码里面基本没有使用什么C++的特性,也很好懂。我就照着书上的写了个Python的。引用的这个 blo

2017-11-26 19:59:39 512

原创 【数据结构】动态内存管理

动态内存管理是和操作系统息息相关的一个活动,现在的计算机的内存分配和回收基本上都由OS来维护管理,但是一些高级程序语言的内存回收和分配都还是由程序员来管理,比如C和C++,有malloc方法,也总有构造函数和析构函数。但是有一些语言就不需要,比如Python。系统每次对申请内存的对象分配一段地址连续的内存块,如果已经被占用了,就叫做占用块,如果还没被分配掉,就叫做可利用空间块或者空闲块。在回收内存之

2017-11-26 19:51:59 804

原创 【数据结构】内部排序算法

我总结了一下常见的排序算法。直接写成了类,对于每一种算法的说明都写在了注释里,在调用某个类或者某个排序算法的方法之后,使用python内置的 __doc__方法即可查看具体的某种算法的说明。class SortingAlgorithms(object): ''' 冒泡法:对比模型,原数组上排序,稳定,慢o(n^2) 插入法:对比模型,原数组上排序,稳定,慢,最优的方法是希尔排

2017-11-25 21:07:08 441

原创 分解调整字符串中的字符 Python 版

题目: 给定一个字符类型的数组 chas[],其中只有数字和 “*”星型字符,现在想把所有的星型字符挪到数组的左边,数字字符全部放到右边,顺序不许变。要求: 时间复杂度为 O(N), 空间复杂度是O(1)。代码: def replace_stars(self, str_list): # 将所有*号移动到数组的左侧 j = len(str_list) - 1

2017-11-23 22:59:00 1306

原创 将字符串中的空字符全部替换为别的字符串 Python 版

题目: 给定一个字符类型的数组 chas[], 其右半边全部是空字符,左半边没有空字符;现在需要将左半边所有的空格space替换为 “%20”,现在的假设是右半边足够大,不需要考虑这个空间。 例如:chas = [’ ‘,’a’,’ ‘,’b’,’ ‘,’ ‘,’g’] 输出的结果是 [‘%’, ‘2’, ‘0’, ‘a’, ‘%’, ‘2’, ‘0’, ‘b’, ‘%’, ‘2’, ‘0’,

2017-11-23 22:42:22 5297

原创 在有序但含有None的数组中查找字符串 Python 版

题目: 给定一个字符串数组 str[],其中有一些位置是 None,但在不是 None 的位置上,其字符串是按照字典的顺序由小到大依次出现的。再给定一个字符串 str,返回 str在 strs中出现最左的位置。 例如: strs = [‘a’, None, ‘b’, None, ‘d’, ‘d’, None, ‘k’,’m’] str = ‘d’ 返回 4。 如果没有找到该字符,即不存在

2017-11-23 22:29:44 1117 1

原创 判断字符数组中是否所有的字符都只出现过一次 Python 版

题目: 给定一个数组,判断其中所有的字符是不是都只出现过一次。要求1: 时间复杂度为 O(N)。代码1: def is_unique_1(self, str_list): # 判断字符类型数组中的字符是否均只出现过一次,时间复杂度o(n) if str_list == "": return False i, map = 0, [0]

2017-11-23 22:03:19 1317

原创 获取字符串的统计字符串 Python 版

题目: 给定一个字符串 str,返回 str 的统计字符串。 例如:“fffjkk99999022____”,其统计字符串是“f_3_j_1_k_2_9_5_0_1_2_2___4”代码: def get_count_str(string): # 获取字符串的统计字符串 if string == "": return "" coun

2017-11-23 21:48:54 1799 1

原创 在单链表中删除倒数第K个节点 Python 版

题目: 给定一个链表,删除其中倒数第k个结点。代码:class LinkedListAlgorithms(object): def __init__(self): pass def rm_last_kth_node(self, k, linked_list): # 删除倒数第 K 个节点,针对单链表的 if linked_list.is_empty(

2017-11-23 21:32:06 1222

原创 打印两个有序链表的公共部分 Python 版

题目: 给定两个有序链表的头指针head1 和head2,打印两个链表的公共部分代码: 这个函数中我使用了我自己写的单链表类,这个代码在另外一篇blog里。 Python版本的单链表类 该问题的函数如下:class LinkedListAlgorithms(object): def __init__(self): pass def print_common_pa

2017-11-23 21:27:13 843

原创 【数据结构】队列和栈 Python 实现

队列和栈都是一种特殊的线性表,所以也各有顺序表和链表两种表示方法。队列是先进先出,链表要优于顺序表,毕竟如果是顺序表的话,要不停地修改地址。应用主要包括银行业务模型,生产模型。栈是后进先出。其表示方法我认为顺序表要优于链表。应用主要有数制转换,括号匹配,行编辑程序,迷宫求解,表达式求值,汉诺塔。队列的Python版本数据结构如下:# -*- coding=utf-8 -*-class Nod

2017-11-23 21:07:03 1950 1

原创 【数据结构】线性表 Python 实现

今天看了一下数据结构的书,发现其实数据结构没有几种,线性表,数组,字符串,队列和栈,等等,其实是一回事,然后就是树结构,图结构。数据结构的理论并不难,主要是要自己写一下这些数据结构以及对应的基本的操作方法,这样就能够更快的提高。这一篇blog写一下线性表。线性表:分为顺序表和链表一、顺序表 顺序表就是相对于表中的数据,地址也是顺序的,所以可以随机存取。但是在操作插入和删除元素的时候,由于要满足地址

2017-11-23 20:59:13 4627 1

原创 【计算机系统组成】指令系统知识要点

计算机的软件就是指令的排列组合。 从指令开始向上看,汇编语言使用简单的单词缩写代替了指令,汇编编译器将汇编语言翻译成指令,形成计算机运行的程序。再向上看,各种高级语言,比如C语言,将C代码利用C编译器编译成汇编语言,然后再用汇编的机器翻译成机器指令,形成动态的程序。更有甚者,如Python,本身就是C语言写成的,Py代码有一个解释器,且无法执行多线程的,解释器将Py代码解释成pyc代码,然后编译成

2017-11-22 20:47:08 1871

原创 【计算机系统组成】IO设备知识要点

计算机的IO设备非常多,键盘、鼠标、感应屏幕、显示器、网卡、U盘、打印机。提前需要说明的一点就是,IO设备中最核心的一点就是中断处理。这在单片机中也是最核心的一块内容。具体开辟一章blog来写控制,这里就只总结IO相关的东西。一、 IO结构 最早的IO要先和CPU通信,和主存的连接是间接的。现在发展成为经过一个IO接口,直接接到总线上,和主存通信,单片机和本章节要讨论的就是这个。除此之外,还

2017-11-22 20:43:02 3952

原创 【计算机系统组成】系统总线 知识要点

学习计算机组成原理和系统结构,我看的是高教版的理论书。但是我感觉到如果学这门课的话,如果只看理论就非常抽象,比如今天要总结的总线结构,其定义是连接计算机各个部件的信息传输线,是一种信息交换媒介。单看这个定义非常抽象,没有任何具体的含义,我看书的时候就在想,总线和通信线路之间有什么关系?是不是就是一回事?总线到底是几根线?究竟是把各种线汇总起来呢?还是其他什么含义?完全摸不到头脑。嵌入式我没有接触过,

2017-11-22 20:40:57 940

原创 【计算机系统组成】存储器知识要点

我不是计算机专业的,所以这门课我以前上学的时候没有学过,但是又非常重要,所以需要在这里写一下笔记总结,之前了解过一点单片机的东西,知道芯片的地址线、数据线、片选、中断等知识,本科也学过模拟电路和数字电路,所以基本的电路知识、半导体、三极管、MOS管等的知识也了解一些。所以在存储器里的具体的芯片如何连接的内容我就省去了,毕竟工作也不是做这个,就省略掉,以后再接触吧。存储器的本质还是将数据按照电平高低来

2017-11-21 22:49:01 694

原创 【计算机网络】传输层知识要点

传输层,又叫运输层,transportation。核心是向应用层、会话层、表示层提供通信服务;它覆盖在网络层基础上,抹去了网络和主机通信这两个概念,通信的端点是应用进程;现在的操作系统都提供传输层服务,包含了差错检测,具有一定可靠性,而非IP数据报只检验首部。传输层传输的也是数据报,这一层数据报包裹在IP数据报里面,到达终点后,传输层将数据报交付应用层的某个端口,端口是传输层的概念,它和OS中的某个

2017-11-21 14:24:31 461

原创 【计算机网络】网络层知识要点

网络层的功能是实现计算机主机在网络中的互联,是建立在数据链路层基础上,将全世界的所有的网络全部互联的一个网络层次。网络层向上层只提供简单的、灵活的、无连接的、尽最大努力交付的数据报服务,它并不保证数据的质量。数据的质量由TCP协议保证,面向连接。IP层的最根本的就是在各种异构网络的 基础上覆盖一层,实现数据的无障碍传输。一、IP协议IP协议一起配套使用的还有ARP协议、ICMP协议、IGMP协议。

2017-11-21 11:31:44 1190

原创 【计算机网络】网络安全知识要点

计算机网络安全知识要点。一、 密码体制1、 对称密码体制:加密和解密的密码相同,由此产生了DES,如果密钥丢失或失窃,则很容易将数据泄露出去。所以对称密码体制的作用仅仅是防止数据被其他人获得。 2、 公钥密码体制:加密密钥和解密密钥不同,根据数论中的大数理论得到的。大数理论,我给忘记了,我不了解现在网上通行的公钥算法的大质数有多大。 这两种密码体制是现行的保证网络安全的基础。数据的安全

2017-11-16 21:43:40 11881 2

原创 【信号与系统】私人回顾

信号与系统之前我学的还算不错,但是对于其中有些概念的理解仍然不够透彻,今天好好梳理一下信号与系统的关键知识点,有助于以后的工作。书中给出了大量的信号种类及其处理方法,锯齿、半余弦、方波等等,这些以后实际遇到了再翻书不迟。而滤波、采样、码分等内容我都没有细写,因为用的少了。一、 信号只说我认为比较重要的信号: 1、 随机信号和确定信号:确定信号不谈,对随机信号的处理方法有很多种,在数字信号处

2017-11-16 21:39:05 952

原创 【微积分】复习

学习高数的时间有点久了,很多概念都生疏了,所以花了一天时间重新翻了一遍高等数学,就写一篇文档总结一下微积分中的关键点和关键概念,帮助以后工作更快速的进步。我看的教材还是同济版的,同济的高等数学写的要比线性代数好得多。一、 函数函数是初等数学中的概念,在高等数学中同样适用,这是微积分讨论的对象。有输入,也有对应的输出,满足这样的功能的都叫映射,或者函数,只不过函数更侧重于数这个变量。编程中有参数

2017-11-14 21:39:34 9376

原创 【线性代数】私人回顾

回过头好多年,又重新看本科时学的线性代数,还有读研时修的矩阵论,确实发现,原来线性代数这么美妙、完整。大一线性代数考试的时候,就觉得线性代数考题还是挺简单的,长期的准备让我对线性代数的细节掌握的特别好,但没有深入理解;好多年过去,线性代数里的好多具体公式都忘记了,但是仍然对相似矩阵、特征值、特征向量、线性空间、行列式这些概念有印象。我这几天下载下来同济版的线性代数,又大致翻阅一遍,写一篇博客,记录一

2017-11-10 11:39:57 692

原创 将整数字符串转成整数值 Python版

题目 给定一个字符串,如果其中所有的字符都是数字,且符合人们日常的书写规范,则返回该整数值,否则返回0。 例如:“123”,返回123; “038123”,返回0; “dfa423”,返回0; “-482”,返回-482; “-03”,返回0。代码 def str_2_int(string): # 将符合规范的数字字符串转为数字 if string == "":

2017-11-09 21:47:49 2164 1

原创 判断两个字符串是否互为旋转词 Python版

题目 如果将一个 str1 从任意的位置切分开,分成两部分,将后面一部分放置在前面, 再组合起来成为 str2,构成了旋转词。 例如:str1 = “apple”,str2 = “leapp”,两个词就是旋转词。代码 def is_rotation(str1, str2): if str1 == "" or str2 == "" or len(str1) != len(st

2017-11-09 20:59:02 2003 1

原创 【计算机网络】应用层知识要点

这是一份比较私人的应用层个人体会,看官如果拿这个来当做学习资料可能会感到太散。1、应用层协议 针对解决不同主机中的多个应用进程之间的通信和协同工作。总的来说,就是在两个主机之间进行信息交互。因此,所有的应用层协议都遵循一定的规则:1、传输的报文类型;2、报文中的各个字段的含义;3、字段对应信息的含义;4、调度这些报文发送的规则。2、 DNS 将主机的 ip地址转换为方便记忆的主机名,但是,一个i

2017-11-08 21:31:44 920

原创 Docker 常用命令汇总

主要针对 CentOS 版本系统而言,其他版本大同小异,可做参考。1、安装docker,设置开机自启动,重新加载配置良心教程,可以克服各种安装困难的好方法 systemctl enable docker.service systemctl daemon-reload2、阿里云镜像加速请注册阿里云的账号,去上面找找阿里提供的 curl 代码。3、启动、重启、停止docker 以下所有命

2017-11-07 23:21:43 353

原创 去掉字符串当中的连续k个0,Python版

题目: 给定字符串str 和一个整数k。如果str中恰好出现了连续的k个0,则将k个0删除。 比如,给定字符串str = “0000fw300001203h000ui0000re3_0000”,k=4。返回的结果为“fw31203h000uire3_”。代码:class StringAlgorithm(object): def __init__(self): pass

2017-11-07 21:56:10 2020 2

原创 计算字符串中所有数字之和Python版

题目: 给定一个字符串,计算其中所有数字的和。其中,不考虑小数点,如果有奇数个“-”号,则数字为负,偶数个则数字为正。 例如,“a12b3mnh4”, 返回值19, “-2fds—-43fnd”,返回值41。代码:class String(object): def __init__(self): pass def sum_of_num(self, str):

2017-11-04 00:44:55 7769

原创 判断两字符串是否互为变形词Python版

题目: 给定两个字符串,str1,str2,判断两个字符串中出现的字符是否全部种类一样,数量一样。 例如: str1 = “apple”, str2 = “paple”, 返回 True; str1 = “pear”, str2 = “bears”, 返回 False。Python版代码如下,我自己手写:def is_deformation(str1, str2): if str1

2017-11-02 22:36:16 2489 1

原创 Pyspider中给爬虫伪造随机请求头

Pyspider 中采用了 tornado 库来做 http 请求,在请求过程中可以添加各种参数,例如请求链接超时时间,请求传输数据超时时间,请求头等等,但是根据pyspider的原始框架,给爬虫添加参数只能通过 crawl_config这个Python字典来完成,框架代码将这个字典中的参数转换成 task 数据,进行http请求。这个参数的缺点是不方便给每一次请求做随机请求头。 crawl_

2017-11-01 09:11:31 6431

Java中类的反射机制

详细介绍Java中类的反射机制,并附带实例程序供参考使用。

2013-12-18

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除