- 博客(47)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 爬虫入门(初阶)
简单记录下python爬虫的学习过程,小目标是可以写出完善的脚本爬取微博评论和App Store中的用户评价第一步了解爬虫脚本的大致框架组成根据搜索到的资料,先练手,尝试获取python菜鸟教程上的目录,存储在文件中输出遇到的问题总结:1.获取到的数据中有一些空格数量的影响,导致输出到文件中的展示比较乱数据量较少,所以采取了遍历整个列表,使用python中的strip()方法对每个字符串都进行前后空格的去除后续编写过程中,关注下数据量较大时,是否还有该问题影响,或者是否有其他简.
2021-05-10 11:34:30
214
原创 使用fiddler模拟接口返回,切换tab交替测试
使用fiddler模拟接口返回,每个tab返回不一样的榜单数据,来回切换测试模拟实现原理使用fiddler工具的AutoResponder tab可以允许从本地返回文件,不用将http request发送到服务器上,通过创建AutoResponder规则里的Create New Response功能,使得在接口请求时直接来拿我们修改后的Response,并且AutoResponder可以...
2018-12-11 17:23:26
659
原创 Python小练习(2)
(1)生成10份不同的汉译英问题的试卷,每套试卷有10道题。程序要做的事情:创建10份不同的测试试卷为每份试卷创建10个多重选择题,次序随机为每个问题提供一个正确答案和3个随机的错误答案将测试试卷写到10个文本文件中将答案写到10个文本文件中这意味着代码需要完成:将单词和汉语翻译保存在一个字典中针对测试文本文件和答案文本文件,调用open()、write()和c
2017-12-07 14:31:26
523
原创 Python小练习(1)
1.假定有下面这样的列表:spam = ['apples', 'bananas', 'tofu', 'cats']编写一个函数,它以一个列表值作为参数,返回一个字符串。该字符串包含所有表项,表项之间以逗号和空格分隔,并在最后一个表项之前插入 and。例如,将前面的 spam 列表传递给函数,将返回'apples, bananas, tofu, and cats'。但你的函数应该能够处理传递给它的任
2017-11-18 21:30:38
4746
原创 mysql数据库的基本使用
mysql数据库 mysql常用语句 连接数据库:mysql -u root -p 断开数据库: exit 库操作 1)新增数据库 create database 数据库名称 [库选项]; 库选项:用来约束数据库 如:字符集设定 charset 具体字符集(数据存储的编码格式)常用GBK U...
2017-09-10 13:39:59
1904
原创 各种排序算法解析
各种排序算法解析 1.插入排序 (1)插入排序 基本思想:假设待排序的记录存放在数组arr[1...n]中。初始时,arr[1]自成一个有序区,无序区为arr[2..n]。从i=2起,至i=n为止,依次将R[i]插入当前有序区,生成含有n个记录的有序区。 需要进行多次的单趟排序 优势:当记录本身有序时,效
2017-08-01 19:30:58
448
原创 笔试题--TopK问题
笔试题--TopK问题 CVTE笔试题 题目:本公司现在要给公司员工发波福利,在员工工作时间会提供大量的水果供员工补充营养。由于水果种类比较多,但是却又不知道哪种水果比较受欢迎,然后公司就让每个员工报告了自己最爱吃的k种水果,并且告知已经将所有员工喜欢吃的水果存储于一个数组中。然后让我们统计出所有水果出现的次数,并且求出大家最喜欢吃的前k种水果。 这个题目就是典型的TopK问
2017-07-31 19:02:39
897
转载 C++的单例模式
转载:http://www.cnblogs.com/qiaoconglovelife/p/5851163.html1 教科书里的单例模式 我们都很清楚一个简单的单例模式该怎样去实现:构造函数声明为private或protect防止被外部函数实例化,内部保存一个private static的类指针保存唯一的实例,实例的动作由一个public的类方法代劳,该方法也返回单例类唯
2017-07-29 11:46:42
292
原创 二叉树相关面试题--树中两个节点的最低公共祖先
二叉树相关面试题--树中两个节点的最低公共祖先 第一种情况当这棵树为二叉搜索树时 这种情况的处理最为简单,当这棵树是二叉搜索树时,就表明其每个节点的数据都是排序过的,左子树的节点都比根节点小,右子树的节点都比根节点是数据大,我们可以根据两个节点的数值与根节点的数值进行比较来确定范围,采用递归算法来使范围不断的缩小。这种方法的实现也相对比较简单。 主要代码(在处理时要
2017-07-28 10:48:19
483
原创 链表相关面试题(基础篇)
链表相关面试题(基础篇) 链表是一种常见的基础数据结构,是一种线性表,是一种物理存储单元上非连续、非顺序的存储结构。链表由一系列节点组成,节点可以在运行时动态生成。每个节点包括存储数据元素的数据域和存储下一个节点地址的指针域两个部分。相比于线性表顺序结构,操作复杂。数据元素的逻辑顺序也是通过链表中的指针链接次序实现的。 线性表的链式存储特点是用一组任意的存储单元存储线性
2017-07-24 23:05:42
694
原创 二叉树面试题(基础篇二叉树的相关面试题(基础篇)
二叉树的相关面试题(基础篇) 树是n(n>=0)个有限个数据的元素集合,形状像一颗倒过来的树。 包含概念: 节点:节点包含数据和指向其他节点的指针 根节点:树第一个节点被称为根节点 节点的度:节点拥有的子节点个数 叶节点:没有子节点的节点(度为0) 父子节点:一个节点father指向另一个节点child,则child为孩子节点,f
2017-07-24 09:36:28
478
原创 复杂链表的构成与复制
复杂链表的构成与复制 复杂链表的复制。一个链表的每个节点,有一个指向next指针指向下一个节点,还有一个random指针指向这个链表中的一个随机节点或者NULL,现在要求实现复制这个链表,返回复制后的新链表。 复杂链表的结构 typedef struct ComplexNode{ DataType _data ; // 数据 stru
2017-07-17 15:54:38
459
原创 shell进度条
shell进度条 printf函数可以给输出的字体和背景配色 格式: \033[字背景颜色;字体颜色m字符串\033[0m 颜色: 颜色 字体 背景 黑色 30 40 红色 31 41 绿色 32 42
2017-07-15 16:21:37
372
原创 shell脚本-语法
shell脚本 1.for循环 Shell脚本的for循环结构和C语言很不一样,它类似于某些编程语言的foreach循环 for循环有两种写法 (1)for i in {a..z} do echo $i done (2)类C方式 for(( i=0; i
2017-07-15 15:42:21
1133
原创 命令代换
命令代换 Shell的作用是解释执行用户的命令,用户输入一条命令,Shell就执行一条,这种方式称为交互式,Shell还有一种执行命令的方式称为批处理,即用户事先写一个Shell脚本,让Shell一次把这些命令执行完。 Shell脚本是解释执行的,不需要编译,Shell程序从脚本中一行一行读取并执行这些命令。 命令代换:Shell执行命令并将命令替换部
2017-07-13 17:32:16
377
原创 最小生成树
最小生成树 最小生成树(无向图) 连通图由N个顶点组成,生成树必须包含有N个顶点,N-1条边 (1)只能用连通图的边来构造最小生成树 (2)只能恰好好用N-1条边来连接图中的节点 (3)选用的N-1条边不能构成回路 连通图 在无向图中V1到V2有路径,则称V1和V2是连通的,如图中任意两个顶点都是连通的,则称此图是连
2017-07-13 15:17:33
633
原创 并查集
并查集 并查集是一种树型结构,用于处理一些不相交集合的合并和查询问题。集就是让每个元素构成一个单元素的集合,也就是按一定顺序将属于同一组的元素所在的集合合并 将N个不同的元素分成一组不相交的集合。开始时,每个元素就是一个集合,然后按照规律将两个集合进行合并。 将所有元素间的关系用数组表示,初始状态时,数组里的值都置为-1,表示此元素单独为一个集合,当将元素进行合并时,
2017-07-11 17:08:06
373
原创 图(深度优先搜索&&广度优先搜索)
图1.基础知识 图是一种非线性结构,由顶点集合(vertex)及顶点间的关系集合组成的一种数据结构 Graph=(V,E);V={x|x是顶点的集合};E={|x,y属于V} 如下图 图可以分为有向图和无向图两种。 完全图:在由n个顶点组成的无向图中,若有N(N-1)/2条边,则称为
2017-07-10 17:49:11
1283
原创 C与C++的常错小细节
C与C++的常错小细节1.fork()系统调用是Unix下以自身进程创建子进程的系统调用,一次调用,两次返回。如果返回值是0,则表示是子进程,如果返回值>0,则表示是父进程。在fork()调用处整个父进程空间会原模原样地复制到子进程中,包括指令、变量值、程序调用栈、环境变量、缓冲区等。2.const char *node="ABC"; 指向字符常量的指针 *node的值不
2017-07-09 11:57:55
467
原创 TCP协议中的定时器
TCP协议中的定时器 什么是计时器呢?我们可以理解成一块闹钟,隔一段时间响一次,提醒TCP做特定的事情。TCP要正常工作,必须要有特定的计时器。 TCP使用四种定时器(Timer,也称为“计时器”):重传计时器(Retransmission Timer)、坚持计时器(Persistent Timer)、保活计时器(Keeplive Timer)、时间等待计时器(Time_
2017-07-09 10:59:52
602
原创 端口分类
端口分类1.服务器端口 随着计算机网络技术的发展,原来物理上的接口(如键盘、鼠标、网卡、显示卡等输入/输出接口)已不能满足网络通信的要求,TCP/IP协议作为网络通信的标准协议就解决了这个通信难题。TCP/IP协议集成到操作系统的内核中,这就相当于在操作系统中引入了一种新的输入/输出接口技术,因为在TCP/IP协议中引入了一种称之为“Socket(套接字)”应用程序接口。有了这样一种
2017-07-09 00:01:49
5944
原创 NAT技术与代理服务器
NAT技术与代理服务器调研一、NAT技术1.概念 网络地址转换(NAT)是一个IETF(Internet Engineering Task Force,Internet工程任务组)标准,允许一个整体机构以一个公用IP地址出现在Internet上。顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术。可以认为NAT在一定程度上能够有效的解决公网地址不足的问题
2017-07-08 19:49:57
524
原创 红黑树
红黑树1.红黑树 红黑树是一颗二叉搜索树,它在每个节点上增加一个存储位来表示节点的颜色,可以是RED或BLACK。通过对任何一条从根到叶子简单路径上的颜色来约束,红黑树保证最长路径不超过最短路径的两倍,因而近似于平衡。(最短路径所有节点都是黑色,最长路径是一黑一红)2.规则 红黑树是满足下面红黑性质的二叉搜索树 1.每个节点,不是红色就是黑色 2.根节点是黑色的
2017-07-05 11:10:37
350
原创 AVL树
STL中set和map的使用1.mapMap是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在ma
2017-06-29 18:53:04
472
原创 循环冗余校验(CRC校验)
循环冗余校验(CRC校验)1、基本概念 循环冗余校验码:是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备
2017-06-28 16:12:24
2911
1
原创 守护进程(精灵进程)
守护进程(精灵进程) 守护进程也称精灵进程(Daemon),是运行在后台的一种特殊进程 。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。 Linux系统启动时会启动很多系统服务进程,这些系统服务进程没有控制终端,不能直接和用户交互。其他进程都是在用户登录或运行程序时创建,在运行结束或用户注销时终止,但系统服务进程不受用户登录注销的影响,它们一直在运行着。
2017-06-28 00:40:25
546
原创 Linux下的crond和crontab调研
Linux下的crond和crontab调研1、基本概念1)crond crond的概念和crontab是不可分割的。 crond是一个命令,常见于Unix和类Unix的操作系统中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放区“crontab”文件中,以供之后读取和执行。 crond正是crontab的守护进程。2)crontab文
2017-06-27 00:26:17
457
原创 可重入函数和线程安全
可重入函数和线程安全1.线程安全线程安全:当一个函数被多个并发进程反复调用时,它会一直产生正确而的结果,称其为线程安全的。若一个函数不是线程安全的,就称其为线程不安全的。线程安全就是说多线程访问同一代码,不会产生不确定的结果。换句话说,线程安全就是多线程访问时,采用加锁机制,当一个线程访问该类的某个数据时,用锁对数据进行保护,其他线程不能访问该数据直到该线程读取完,其他线程才可
2017-06-15 13:24:13
438
原创 Linux环境下模拟实现sleep函数
Linux环境下模拟实现sleep函数1.代11.代码中用到的库函数、结构体介绍SIGALRM 信号: 时钟定时信号, 计算的是实际的时间或时钟时间, alarm函数使用该信号。alarm函数:#include unsigned int alarm(unsigned int seconds);12alarm也称为闹钟函数。它可以在进程中设置一个定时器,当定时器指定的时间到时,它
2017-06-15 11:29:42
457
原创 进程间通信方法一:匿名管道
进程间通信方法一:匿名管道系统中的公共资源由操作系统(内核)提供,进程间互相独立,各不干扰。如果一份资源可被多个进程访问,则被称为临界资源。临界资源需要被保护,临界资源任意时刻保证只有一个进程在访问,且任何进程访问临界资源时要保持原子性,以原子形式读写,互斥访问。进程间的的通信方法有多种,这篇博客介绍一下其中的一种通信方式,匿名管道(pipe)。管道是一种最基本的IPC机制,由
2017-05-14 16:46:19
560
原创 模拟实现myshell
模拟实现myshell直观地看来Linux下的Shell命令提示符:用户名@主机号 当前目录名 提示符函数gethostname()可以获取到当前用户的用户名函数getcwd() 是获得执行程序的当前路径。
2017-05-14 15:16:50
578
原创 explicit关键字
explicit关键字最近刷题过程中遇到了关于explicit关键字方面的知识,隐式转换有时候会有程序逻辑的问题,还是值得学习下explicit关键字是阻止转换构造函数进行隐式转换的发生当构造函数前没有explicit关键字修饰单参数的构造函数可以做到隐式转换,在上边a2对象的构造过程中只调用构造函数可以看出当构造函数加上explicit关键字后,编译器就会
2017-04-20 12:37:27
417
原创 关于C++异常方面的问题
关于C++异常方面的问题异常:当一个函数发现自己无法处理的错误时抛出异常,让函数的调用者直接或间接的处理问题1、传统处理错误的方法:(1)终止程序(2)返回错误码(3)返回合法值,让程序处于某种非法的状态(4)调用一个预先设置的出现错误时调用的函数 ---回调函数2、异常的抛出和捕获(1)异常是通过抛出对象而引发的,该对象的类型决定了应该激活哪个处理代码(
2017-04-19 17:46:27
442
原创 模拟实现定制删除器的SharedPtr
模拟实现定制删除器的SharedPtr上篇博客里介绍了三种智能指针,模拟了三种智能指针的简单实现。这里继续介绍智能指针SharedPtr,利用仿函数定制删除器利用仿函数来解决C++中出现的new 、delete等匹配问题在C++中有关内存处理方面的操作符或函数有 new----------delete malloc-----------f
2017-04-19 16:11:53
394
原创 智能指针
智能指针1、智能指针概念由于C++中没有自动回收内存的机制,程序每次new出来的内存都要通过delete来回收,所以很容易会发生内存泄漏的问题。引入智能指针可以有效的缓解回收内存方面的问题。智能指针实际是存储指向动态分配对象指针的类,定义一个类来封装资源的分配和释放。智能指针要求资源的有效期与持有资源的对象的生命期严格绑定,即由对象的构造函数完成资源的分配,同时由析构函数来完成
2017-04-19 15:07:52
336
原创 大小端问题
最近在刷题的过程中遇到好多关于大小端问题的题目看得多了,有点把自己带入了一个思维误区,我可以很清楚的理解数据在大小端不同机器中的存储,可是在打印值时,越想越混乱,不知道该用怎样的语言来解释在VS中验证,我用的是小端机器(在文章后面会有验证)从这里可以看出78被存在低地址中有两种方式可以验证机器是大端机器还是小端机器(1)联合体的内存大小为
2017-04-03 11:46:55
734
原创 vim的简单配置
vim是Linux下的一款多模式编辑器vim允许用户自行对vim进行各种配置和插件的安装在主工作目录下输入ll -a选项,可以看到所有文件(包括隐藏文件),在这些文件中可以发现一个文件名为.vimrc的文件若没有的话,也可以是用touch命令自行建立一个由于文件过多,所以我只截取部分打开.vimrc文件后,就可以在其中写入配置的语句,保存后即可。vim .vimrc
2017-04-01 22:56:00
361
原创 Linux中的粘滞位
通常情况下用户只要对某个目录具备w写入权限,便可以删除该目录中的任何文件,而不论这个文件的权限是什么比如进行一下的操作1)创建/test目录,并赋予777权限2)以root用户的身份在/test目录中创建文件file,并查看其默认权限3)以普通用户的身份登录系统,可以删除file通过上述操作可以发现,虽然普通用户对文件/test/file只具备“r--”
2017-03-24 23:50:30
357
原创 Linux下文件的Access time,Modify time, Change time的三个时间
在Linux环境中输入stat test.c 会出现三个时间,分别为Access time,Modify time, Change timeatime(Access Time):表示最后一次访问文件或目录mtime(Modify Time):表示最后一次修改文件或目录的时间ctime(Change Time):表示最后一次改变文件或目录的时间(1)对于文件而言,当修改文件时
2017-03-19 14:12:22
904
空空如也
C语言编写的扫雷代码,但是在就算第一行和第一列的周围雷数时是有问题的数目错误
2016-11-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人