- 博客(96)
- 收藏
- 关注
原创 python使用requests库发送https请求报错:SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED]
使用python进行接口测试的时候,我们可以使用postman的功能生成对应的python格式:写好json格式的请求之后,右侧<>打开,选择想要生成的pthon格式即可过程中程序报错:ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED]解决方法:请求方法时添加一个参数verify = false就行了,这是因为该库在发送请求前是会校验ssl证书的,只要把校验步骤关掉就不会报错了,而且该方法的前提是你的项目对ssl安
2021-04-26 16:28:55
3178
原创 如何拿到一个图片的二进制数据
表单二进制派发接口任务的过程中有的请求体不是json格式,有可能是一个表单二进制,那么我们就可以通过上传一个图片就可以成功派发该接口任务,接口会将图片变成一连串的字符串,存到服务器中,然后就可以开始分析了。base64二进制这种情况下一般我们没有办法直接拿到这种格式的数据,那就介绍下怎么获取base64格式的数据吧base64工具转换百度上面可以百度到一款在线工具用于将本地存储的图片文件转换出其二进制格式的数据,http://tool.chinaz.com/tools/imgtobase/利用
2020-08-27 18:38:12
7987
5
原创 Read-only file system\nsysctl只读文件系统加载报错怎么解决
问题定位首先根据经验可以知道这是权限的问题,可以使用mount命令查看下目录的属性,好巧不巧发现挂载的属性是只读的如何修改文件的挂载属性呢mount /proc/sys -o rw,remount这句强大的命令执行后,再查看挂载属性就变成了rw,紧接着继续执行程序不报错...
2020-06-09 19:02:21
2343
原创 Linux常用查看CPU信息的命令
查看CPU基本信息cat /proc/cpuinfo•processor 逻辑处理器的id。•physical id 物理封装的处理器的id。•core id 每个核心的id。•cpu cores 位于相同物理封装的处理器中的内核数量。•siblings 位于相同物理封装的处理器中的逻辑处理器的数量。常用的加检索条件的cat /proc/cpuinfo1 查看物理CPU的个数#cat /proc/cpuinfo |grep “ph
2020-05-12 09:49:27
14049
原创 Linux常用命令之操作磁盘命令
磁盘使用情况查看df命令含义:df可以查看磁盘的总量、使用情况、剩余情况、挂载情况常使用选项:-i :显示inode信息-h :使用默认的单位显示,一般M\K\G-k: 以K为单位显示-m:以M为单位显示du命令含义:查看某个目录下文件所占空间的大小参数选项:-a(all):全部文件与目录大小都列出来。-b(bytes):列出的值以bytes为单位输出。-k,-m:分别以K为单位和以M为单位。du默认单位k-h(human-readable):自动调节单位。-c(t
2020-05-11 10:28:58
1819
原创 测试知识学习1
软件测试的目的:验证程序是否满足用户的需求什么是测试用例?向被测程序输入的一组集合,包括:测试环境,操作步骤输入数据,预期结果,前置条件……认识不同的测试方法:按测试时间阶段分类:单元测试、集成测试、系统测试、验收测试单元测试:对软件中的最小可测试单元进行检查和验证单元就是人为规定的可测试的模块 1、单元测试的原则:尽可能保证各个测试用力是相互独立的(如...
2019-08-22 10:51:48
394
原创 数据结构之红黑树的实现
#include<iostream>using namespace std;#include<assert.h>enum color{ RED, BLACK,};template<class K, class V>struct TreeNode{public: TreeNode<K, V>* _left; ...
2018-08-16 22:35:16
450
原创 STL相关知识之空间配置器底层实现原理
//我们知道空间配置器在实现的时候其实是封装了一层malloc,如果定义了__USE_MALLOC宏就用一级空间配置器,//没有的话就是二级空间配置器./////////////////////////////////////////////////////一级空间配置器(内存大于128b)//1、申请空间,利用allocate,释放空间使用deallocate//2、申请空间失败调用...
2018-08-12 21:34:47
283
原创 给定一个节点,求他中序遍历顺序下的下一个节点
访问下一个节点有两种情况,有右子树,就往右边遍历,其中假如左子树不为空就一直往左走,否则返回,没有左子树就直接返回。 情况二就是像图中左下角一样的没有右子树或者左右子树都没有就要找对应的没有遍历过得父节点,(if(parent->left==pNode)这说明刚好是符合要求的父节点,否则就要向上沿路找没有遍历过的父节点。/*struct TreeLinkNode { int...
2018-08-12 20:21:51
734
原创 给定一个数组,判断是不是某二叉搜索树的后序遍历结果
AC的代码:class Solution {public: bool VerifySquenceOfBST(vector<int> sequence) { if(sequence.size()==0){ return false;//虽然说空树也是二叉树,但是在此处sequence大小为0,说明参数是错的 } ...
2018-08-12 17:40:50
635
原创 写一个微信朋友圈的测试用例
由于第一次编写测试用例,若有不完整的地方,欢迎指正!!! 首先将微信朋友圈分成以下模块:1、点赞功能1、网速对点赞的影响 2、点赞的人个数显示是否正确 3、共同好友能否看到点赞状态 4、能否显示点赞得人的头像和昵称,若能显示是否正确 5、一行显示几个点赞的头像 6、能否正常的点赞和取消点赞 7、点赞显示能否按照时间的先后 8、消息列表中是否显示点赞人的昵称,头像和点赞时...
2018-08-10 12:07:46
44097
8
原创 给定一个有序(升序)单链表要求使用单链表来构建a height balanced BST.
由于单链表是升序的,我们就可以将此问题化简成把中间节点左边建成左子树,中间节点有半部分建成右子树的两个子问题(递归解决),但是这里非常要注意,我们不能像数组一样,那样的跑不过测试用例,(至于为什么,我还不知道,请大家为我解答)我们可以将链表断开形成两个单链表,在组装在一起就好了。 * struct TreeNode { * int val; * TreeNode *le...
2018-08-06 15:56:57
778
原创 对一个链表进行排序,要求空间复杂度O(1),时间复杂度为O(N*logN)
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *so...
2018-08-03 22:42:49
3786
原创 Given a singly linked list L: L 0→L 1→…→L n-1→L n, reorder it to: L 0→L n →L 1→L n-1→L 2→L n-2→…
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: void reorder...
2018-08-03 22:12:48
849
原创 算法之机器人的行走范围
class Solution {public: int movingCount(int threshold, int rows, int cols) { if(rows<1||cols<1||threshold<0){ return 0; } bool* flag=new bool[rows...
2018-08-01 17:03:45
959
原创 总结sizeof()和strlen()和数组、字符数组、字符串之间的作用
sizeof()牢记sizeof()是表达式不是函数,sizeof()可以用来求变量 、数组、对象、结构体等所占空间的大小,其实只要将sizeof()操作的参数理解成类型,围绕类型就不怕一些坑。sizeof()和数组只有两种情况下数组名可以表示整个数组:(1)sizeof(数组名):此处数组名不能修饰,否则表示数组首元素的地址(2)&数组名 其他时候像数组名单独使用,或者是s...
2018-07-30 17:34:41
12796
3
原创 【剑指offer】常见malloc/free使用相关面试题
1、 以下代码有什么问题??void GetMemory( char *p ){ p = (char *) malloc( 100 );}void Test( void ) { char *str = NULL; GetMemory( str ); strcpy( str, "hello world" ); printf( str );}此题主要是GetMemory...
2018-07-30 11:29:15
882
原创 这样实现函数strcpy才能拿满分
以下给出的几种方案,在面试官看来,最后的答案才是完美的。 方案1:void strcpy( char *strDest, char *strSrc ){ while( (*strDest++ = * strSrc++) != ‘\0’ );}方案2:将原串用const修饰,表示不可以被修改void strcpy( char *strDest, const char ...
2018-07-30 11:01:04
229
原创 【动态规划】数字和为sum的方案数
题目:给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数。 当两种选取方案有一个数字的下标不一样,我们就认为是不同的组成方案。#include <iostream>using namespace std;int main(){ int num,sum; cin>>num>>sum; ...
2018-07-29 11:06:34
1513
原创 根据前序和中序遍历的结果构建二叉树
class Solution {public: TreeNode* reConstructBinaryTree(vector<int> pre,vector<int> vin) { int len1=pre.size(); int len2=vin.size(); if(len1==0||len2==0||len1!...
2018-07-27 09:52:47
348
原创 【TCP/IP模型之传输层】详解TCP三次握手四次挥手过程、TCP的可靠性传输以及粘包问题
认识端口号端口号是由操作系统动态分配的。用于TCP/IP协议,在标识通信起到一定的作用。常见的端口号ssh服务器:22 ftp服务器:21 telnet服务器:23 http服务器:80(但是也不是绝对的,这只是一个习惯) https服务器:443 一个进程可以绑定多个端口号,但是一个端口号只能被一个进程绑定(特殊情况fork创建的子进程和父进程可以绑定同一端口号,这是由...
2018-07-27 00:48:46
839
原创 TCP/IP模型之应用层及HTTP协议
应用层的功能负责应用程序间的沟通来制定协议,通俗的来讲就是应用层会借助TCP、UDP协议在各种各样的程序之间传递数据(邮件、文件等等),这时候像应用层协议就可以规定这些数据的格式要满足什么样。常见应用层协议:(带*要熟知) –基于TCP的应用层协议 –基于UDP的应用层协议 *简单电子邮件传输协议(SMTP) *动态主机配置协议(DHCP) *文件...
2018-07-25 12:16:19
3977
原创 详解C语言和C++的区别与联系,指针和引用的区别,new/delete和malloc/free的区别
C++是C语言的扩充,不仅可以沿袭使用C语言的语法,C++还有自己的特殊的部分。 那就主要说一说C语言和C++的区别: 1、C语言是面向过程语言,但是C++是面向对象语言(什么是面向对象:将实现功能的模块封装在类里,把细节交给类去实现,用户使用时只需要调用接口就可以了,不需要关注底层是如何实现的)。 2、C语言中函数传参尽量使用传地址的方式,即用指针(一来当变量过大的时候避免值传递的拷贝空间...
2018-07-23 01:05:41
737
原创 怎样向面试官证明你熟练掌握了c语言(必须清楚地说出指针相关知识)
准确的说,C语言中指针算是一个大Boss,那么我们需要掌握他什么呢?? 指针是一个常量,他是一块空间的地址,指针变量是保存空间地址的变量,指针变量的值就是空间的地址。 1、既然说指针变量的值是一个地址,那么这块地址不仅可以是变量的地址,还可以是其他数据类型结构的地址,例如指针变量中存放数组,那指针保存的就是数组的地址,存放函数那么保存的就是函数的地址。 2、既然说指针变量保存的是一块地址,那...
2018-07-23 00:20:32
4747
1
原创 如何向面试官讲述进程间通信
首先不着急一上去就说通信方式,我们可以说一说为什么会有进程间通信??? 首先我们知道进程组织的时候是一个结构体,进程与进程之间是相互独立的,有独立的虚拟地址空间,但是有的时候想要在两个进程之间实现数据传输、资源共享、通知事件(例如进程终止时会通知父进程)以及进程控制(debug进程可以控制其他进程的执行)这些功能时就需要两进程之间通信进行交互,所以由内核提供一份公共资源之要让两进程都能访问就可以...
2018-07-22 00:44:25
3464
5
原创 C++内存管理(内含面试题:C和C++的区别,new 和delete的底层原理)
1、new/delete、new[]/delete[]new、delete是操作符,用来分配空间和清理对象的。new[]、delete[]是来为对象数组分配空间和清理对象的。int* p1=new int;//分配一个int大小的空间 int* p2=new int(3);//分配一块空间,并将空间初始化成3. int* p3=new int[3];//分配3个int对象的空间。...
2018-07-20 11:18:20
4783
5
原创 网络基础1------------------TCP套接字编程(单连接版本、多进程版本、多线程版本)
掌握socket常见API(重要掌握)1、创建socket文件描述符(TCP/UDP,客户端+服务器)int socket(int domain,int type,int protocol);//参数1是指定协议类型(ipv4或者ipv6);参数2是指传输数据方式(面向数据报还是面向字节流);参数3默认为0;2、绑定端口号(TCP/UDP,服务器)int bind(int sock...
2018-07-13 16:28:48
297
原创 数据结构之高度平衡搜索树AVL树(含经典面试题----判断一棵树是否是AVL树)
什么是AVL树如何创建一个红黑树满足二叉搜索树满足红黑树的性质红黑树的插入左旋右旋
2018-07-08 20:46:01
4625
2
原创 面试常问----------如何实现一个只能在栈/堆上生成对象的类
1、只能在栈上生成对象的类只能在栈上生成对象就有两点要求:1、不能在堆上生成对象(不能借助new),2、生命周期要随栈的释放 方案1: 不借助new,我们可以在类内部借助函数构造一个对象返回,我们知道在类外调用成员函数,必须借助对象才能调用,那么使用static来修饰这个函数,这个成员函数就属于所有对象就可以直接调用。class AA{public: static AA Get...
2018-06-23 11:03:40
298
原创 面试常问-----------如何实现一个不能被继承的类
一个类不能被继承,就是说它的子类不能构造出父类对象(由于继承就是要达到复用的效果),那么这个子类就无法实例化整个子类,就可以理解成无法继承父类。 方案1: 首先由于我们知道子类继承父类时,访问属性就会改变,private修饰的成员被继承后在子类是不可见的,而子类的构造函数是由子类父类合成而来的,如此就没有办法创建对象,所以我们可以将父类的构造函数声明成私有的,这样一来,这个类的构造函数在子类中...
2018-06-23 10:27:26
234
原创 进程间通信-----------------信号量(主要用于同步与互斥p、v操作)
信号量的原理和本质信号量=计数器+等待队列信号量本身不具有数据交换的功能,只是起到一个管理通信资源的作用,实际上是计数器和等待队列。在进程通信的过程中只负责数据操作的互斥和同步功能。 信号量就是具有原子性的计数器,相当于一把锁,在每个进程要访问临界资源的时候,必须向信号量拿个锁,这样他才能够去访问“房间”(临界资源)。不让其他进程进来,此时信号量执行P()操作,在此过程中申请了一个锁...
2018-06-19 16:35:59
2693
原创 介绍STL中deque的框架
deque概述deque是一种基于list和vector的优缺点而又画出来的一种容器,vector最大的优点就是可以实现随机访问,而list最大的优点却是删除元素和插入元素非常的方便和快捷,所以引出了我们的双向队列(deque):双向开口的容器deque相比于vector最大的差异就在于支持常熟时间内对首尾两端进行插入和删除操作,而且deque没有容量的概念,其内部采用分段连续内存空间来存...
2018-06-19 08:46:47
261
原创 迭代器失效问题以及vector和list的实现
什么是STLSTL是标准模板库。STL六大组件 容器 迭代器 算法 仿函数 适配器(adapter) 空间配置器(allocator) vector\list \deques是一种数据结构 (如同一个指针)提供了访问容器对象的方法,而且不暴露对象的私有成员保持封装,减少了学习成本 操作容器中的数据的模板函数(find()函数就在算法中)...
2018-06-16 23:03:14
1658
原创 面试常考----------------------什么是线程什么是进程
描述线程和进程描述进程:进程是分配资源的最小单位,说到进程就不得不提到PCB,在Linux中,描述进程的结构体被称作task_struct(之所以使用结构体,是为了更好地组织大量进程,因为系统中使用链表来存储进程,一个结构体就表示一个进程)。后面我们用PCB中的内容来描述进程,系统中的进程很多,所以我们的进程id就可以区分这些进程,一个进程有数据也有代码,所以需要一个内存指针来管理这些...
2018-06-15 17:47:39
451
原创 面试常问-----------------Linux信号之信号的产生、信号的捕捉、其他几个重要的信号
理解信号拿生活中的例子来说吧。下课的铃声是一种信号,当我们接收到这种信号就知道该去吃饭或者是去玩,那么计算机中的信号也是类似的,进程可以发送信号也可以接受信号,信号处理时可以选择忽略也可能执行自定义的信号。 总而言之,信号有以下特点: 1、信号的种类有很多种。Linux下可以利用kill -l显示所有的信号,其中31号及以下为普通信号,34号及以上是实时信号。 2、在发生之前就知道对应此...
2018-06-15 16:42:23
985
原创 智能指针的进步史(Auto_ptr-----scoped_ptr--------------shared_ptr(weak_ptr))
为什么会有智能指针之所以引出智能指针是为了解决内存回收问题,就拿抛异常-捕获异常的场景来说吧,我们知道异常捕捉的时候会引起执行流的乱跳,所以假如有些空间是new或者malloc出来的那么我们就要手动的释放,而不确定哪里会捕捉到异常也同样不确定最终异常是否被捕捉,所以为了避免内存泄露,我们就会抛异常时候进行释放,无异常也要释放,但是这仍然有疏漏,有的时候会释放多次,我们就想怎样让这些空间不用的时...
2018-06-09 18:21:21
352
原创 顺时针打印矩阵(牛客网)
思路:将左上和右下的坐标定位,依次旋转打印出数据,一次旋转后,就将坐标分别前进和后退一个单位,把要打印的数据范围缩小。 实现代码:class Solution {public: vector<int> printMatrix(vector<vector<int> > matrix) { int left=0; ...
2018-06-04 15:23:27
447
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人