自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 Python正则表达式

前言Python在处理字符串时较为有效,这里不可回避的问题就是强大的正则表达式的作用。这一篇先简单总结一下,常用的正则表达式用法。一、常用匹配符号· 通配符,匹配除了换行符之外的任意字符^ 匹配字符开头$ 匹配字符结尾*匹配0次或者多次+至少匹配1次?匹配0次或者1次\d匹配数字\w匹配字母、数字和下划线。.{n,}匹配前面的至少n次·组合通配符,因为是0次或者多次,所以这里可以代替字符串中任意长度的任意字符。常用匹配模式1、re.mat

2021-06-20 17:00:48 76

原创 Python的randint和randrange

前言最近使用随机数做项目初始化,遇见了randint和randrange,那么它们之间的区别是什么呢区别randint和randrange都需要通过random随机数库导入使用但是randint是产生(start,end)之间的一个随机int型数据randrange是可以产生(start, end)的递增基数的随机数的,randrange默认基数是1,我们可以设定为2或者任意数进行跳跃随机数eg:randint(1,10)产生1~10之间的任意随机数randrange(1,100,2)产生1

2021-06-20 13:15:30 1472

原创 Mac自带的Python2切换到Python3过程总结

前言当前Python3已经成为主流,且一些编译环境和第三方包显然对python3更为友好,所以笔者将自己的Mac环境改造一下一、安装homebrewHomebrew是Mac系统下的安装包管理工具,有一套指令可以帮助使用者安装、卸载、查看。安装地址:https://brew.sh/index_zh-cn.html直接在终端中使用该指令:/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEA

2021-06-13 17:01:12 955

原创 Python中面向对象的访问可见性问题

访问可见行在其他语言中,比如java中有Public和private来定义属性和方法的访问范围,但是python中不使用这个关键字,我们可以使用_和__来实现伪私有,不使用下划线则表明类里面的属性和方法是公有的。三类私有化方法1、_xxx 单下划线,称之为保护变量。只有类的子类的属性和方法可以访问。需要使用类提供的接口调用,不能使用from module import *导入2、__xxx双下划线,私有属性和方法,只有本类的属性和方法可以调用,子类都不可以调用。在使用该私有方法时候,python内部

2021-05-05 18:20:18 284

原创 Git操作指令和工作流程

Git工作仓库一般有两种1、本地git init初始化之后,那么本地这个仓库就是master分支2、远程拉取仓库进行,那么本地的就是开发分支。git ssh方式git https方式git指令:1、初始化仓库git init2、初始化仓库信息git config user.name “xxx”git config user.email “xxxx”3、git add把工作区的内容add到缓存区4、git commit把缓存区提交到本地分支上。5、git status查看g

2021-02-21 11:32:06 63

原创 Linux实用指令 管道和重定向

管道和重定向1、管道管道,其实就是逻辑中的与逻辑,满足条件A同时满足条件BA | B2、重定向这个一般用在文件流的方向上将终端的流写入文件cat 1.txt 2.txt > 3.txtcat >> 3.txt << EOF内容EOF3、多重定向teels | tee -a 3.txt追加输出ls目录到3.txt...

2021-02-19 07:26:07 51

原创 Linux实用指令 文件和文件夹操作

文件和文件夹操作1、创建和删除空目录mkdir backuprmdir backup2、创建文件和删除文件touch 1.txtrm 1.txt其中创建文件也可以实用cat指令如:cat >> 1.txt EOF内容EOFrm -rf 1.txt其中 参数是递归删除内部文件夹和文件,f是忽略不存在的文件夹3、切换路径和获取当前路径pwd 获取当前路径cd 相对路径(指当前终端作用路径)cd 绝对路径 一般来说, /表示根目录4、ls 查看目录内容-l :

2021-02-18 07:14:50 142

原创 Linux基础指令

Linux基础指令###1、基础指令1.1登录信息w/who/last1.2 查看自己使用的shellps从图中可以看出是bash shell,shell是用户和系统内核交互的翻译官1.3 清除终端屏幕上的记录内容clear1.4 查看系统名和主机名uname 系统名hostname 主机名1.5 时间和日期date/cal1.6 重启和关机reboot/shutdownshutdown -r 23:55 在23:55关机shutdown -h +5 在5小时后

2021-02-18 05:15:13 119

原创 python2和python3的重要区别

Python有两个比较明显的版本分支:Python2.x和Python3.x下面主要是明确一些两者之间的区别,方便在不同环境下自由使用Python,同时也便于代码走读和移植等活动。1、Unicode字符串在Python2.x中str()函数会将对象转化为非Unicode字符串,然后可以用u“内容”再转化为Unicode字符串但是在Python3.x中字符统一为Unicode字符串,并且由于Python3.x源码使用unicode(“utf-8”), 所有使用中文比较方便,不需要加-* utf-8 *

2021-01-25 08:40:54 91

原创 Python中is和==的区别

Python中is和==的区别我们先来理一下我们一般会在什么样的情况下遇见这种辨识问题,A is B 到底和A==B是不是一样的,那么先来讨论一下A 和B分别代表什么。A和B一般来说,我们所指的就是变量,可以理解为vector,在Python中万物都是对象,所以变量也是有两个部分组成的,地址和数据。现在我们来回答题目的问题。1、首先A is B 和A==B是不一样的。A is B ,要求的A 、B两个变量的地址和数据都需要一致,才能达成is条件,即A就是B;A == B,是把A的值和B的值相互比较

2021-01-24 17:01:59 546

原创 ARP协议

ARP协议ARP协议,Address Resolution Protocol地址解析协议,这个主要是用于以太网环境中的,是TCP/IP协议中的一部分。在以太网环境中,数据传输依赖于MAC地址而非IP地址,因此需要ARP协议将目标设备的IP地址转化为MAC地址,在数据传输的帧中包含目标MAC地址。...

2021-01-24 16:25:13 84

原创 二叉堆和二叉查找树

二叉堆是由构造完全平衡树和堆次序排序两步组成二叉堆的操作都是先满足完全平衡树的结构变化,然后处理堆次序

2021-01-18 07:42:50 166

原创 散列

1、散列散列是一种数据结构,一种查找时间复杂度在o(1)的存储结构,依赖于散列函数。一般来说我们会使用存储结构的散列表长度作为除数,使用余数方法来获取数据在散列表中的位置,散列表中位置我们称为槽。这样的话,会存在余数相等的时候,即发生了哈希冲突。数据在该散列函数计算下存储位置和原有数据位置发生冲突。在数学理论上,完美的散列函数是不存在的。但是在工程界,我们是可以设计出完美的散列函数的。典型的就是SHA函数...

2021-01-10 18:05:21 213

原创 经典排序算法

1、冒泡排序算法

2021-01-10 17:38:14 95 1

原创 【数据结构和算法】递归算法和分治策略

分治策略分治策略就是原本一个复杂的,规模大的问题分解为一个简单的,规模小的问题。那么递归算法和分治策略有关系吗?递归算法解决问题依赖于若干缩小规模的问题汇总之后得到的原问题的解。应用:排序、查找、遍历、求值。贪心策略...

2021-01-03 19:00:00 76

原创 【诗歌语言】Meditation XVII

作者:英国诗人John DonneNo man is an island,entire of itself;every man is a piece of the continent,a part of the main.If a clod be washed away by the sea,Europe is the less,as well as if a promontory were,as well as if a manor of thy friend’s or of thine

2021-01-03 13:09:45 929

原创 【数据结构和算法】线性结构

一、线性结构是什么有序数据项的集合,有唯一的前驱和后继二、常见的线性结构1、栈

2021-01-02 21:55:25 199

原创 【数据结构和算法】算法概述

是什么通常我们对于现实中的问题会进行建模,然后确定求解方法。算法 就是解决问题的方法描述,是指令的有限序列。一个算法应该具备以下5个重要的特性1、有穷性:一个合理的算法对于合理的输入需要在有穷步之后结束,且每一步都需要在有穷时间内完成。2、确定性算法中的每一步都需要有确切的含义,不能有二义性。,相同输入,同一个输出。3、可行性一个算法是可行的,可以通过基本运算有限次操作实现。4、输入一个特定对象的集合中的零个或多个输入。5、输出与输入保持特定关系的量,有0个或者多个输出。说明:程

2021-01-02 18:41:00 289

原创 剑指offer 最低公共祖先节点

找出给定二叉搜索的树中的任意两个节点的最低公共祖节点给定两个节点p,q,最低公共祖节点的概念就是p的祖节点和q的祖节点由下向上第一次是同一个节点。由于是二叉搜索树,那么左边节点的值《《根节点值《《右子节点值利用这一特性可以使用递归和迭代两种方法递归解法:处理好入参即可迭代解法:处理好迭代循环控制器即可,这里就是root...

2020-12-17 07:18:57 128

原创 剑指offer 二叉树转化为字符串结构表示 Construct String from Binary Tree

Construct String from Binary Tree给定一个二叉树,把它转化为字符串结构,如果左边有子树,则表示为(root.val),该括号不可省略,否则破坏树结构但是当右子树不存在时,可以省略其()举例子:12 34return 1(2(4))(3)分类讨论:1、当存在左子树或者右子树存在,则左边的形式为"(root.left.val)",否则""2、当右子树存在时,则才会有"(root.right.val)",否则""3、如果左右子树都不存在,则

2020-12-15 00:16:43 187

原创 剑指offer Path Sum II

Path Sum II给定一个二叉树,求出它路径和符合给出的sum值思路:这题可以借鉴判断前面的一题是不是存在符合sum的路径先写一个递归判断是否存在sum的路径的函数,然后调用它,把结果存储在List[List[str]]这里通过Istrue方法先找到符合要求的路径,存储在res列表里然后上面的PathSum再调用即可...

2020-12-12 21:36:23 44

原创 剑指offer 找到二叉搜索树里面出现最频繁的数

找到二叉搜索树里面出现最频繁的数出现最频繁的数就是遍历所有节点之后其中出现次数最多的这题我没有什么思路,考虑递归但是写不出 来。参考https://blog.csdn.net/c406495762/article/details/75497795分析思路:使用迭代不是很懂这里说不能使用哈希表的意思,但是这里明确利用了二叉搜索树的特性,即永远是左子树《《根节点《《右子树,所以如果我们按照中序遍历的方式去遍历,同一个值会同时出现。我们先找到二叉搜索树的中序遍历的起点,然后把root到中序遍历的起点上

2020-12-12 05:57:11 271 2

原创 【数据结构和算法】数据结构概述

数据结构概述计算机解决问题的步骤:1、分析问题,确定数学模型2、由数学模型设计实现算法3、选择合适的语言实现算法4、调试程序,直至解决方案通过测试,完成需求功能。数据在计算机中指的是所有能够输入到计算机中存储并被计算机程序处理的符号的集合数据元素是数据的基本单位,数据项是构成数据元素不可分割的最小单位。数据对象是性质相同的数据元素的集合数据结构指的是所有数据和这些数据之间关系的集合,一般包括逻辑结构和存储结构两个层次数据的逻辑结构分为四类:1、集合2、线性结构3、树形结构4、图状

2020-12-09 08:04:43 333

原创 剑指offer word pattern解法

word pattern给定字符串,判断是否符合要求的匹配模式举例:pattern = “abba”, str = “dog cat cat dog” should return true.pattern = “abba”, str = “dog cat cat fish” should return false.pattern = “aaaa”, str = “dog cat cat dog” should return false.pattern = “abba”, str = “dog d

2020-12-09 00:18:11 90

原创 剑指offer 给定一个二叉树,判断是否有路径上子节点的值和等于给定sum

给定一个二叉树,找出路径上子节点的值和等于给定sum举例子:5》》4》》11》》2,sum = 22解法如下:使用深度遍历方法这里同样是使用递归思想处理这个问题递归要处理好入参和返回值每一次返回值都可以作为下一次的入参这里返回self,func(root.left, sum),会对root和sum进行更新但是这种解法是遍历了所有节点后返回结果优化解法后可以使用广度搜索算法对每一次遍历的节点的左右子节点都进行判断,只要该层出现了符合条件的叶子节点,即可结束递归调用同样更新入参。

2020-12-07 00:57:58 196

原创 剑指offer 二叉树的最小深度

二叉树的最小深度给定一个二叉树,找出该树的最小深度值,并返回解法:深度遍历搜索,即DFS先OOP定义树节点,init()方法分配地址内存接着用递归思想,不断调用minDepth()方法,收集所有树节点的高度返回值。其中map()是python的映射方法,使用方法如下:map(function(), 可迭代对象),map依次遍历可迭代对象里面的元素,作为function()的入参,函数返回值会作为生成器的元素。这里需要如果root存在,则最小深度自动 +1广度遍历搜索 BFS使用队列求解即

2020-12-07 00:06:26 53

原创 【数据结构和算法】递归和迭代

递归和迭代 Python实现递归就是函数自身调用自身,用来把一个复杂问题分解为一个规模较小的简单问题,递归需要设置出口。递归一般都是包含来迭代,尽量少用递归,递归太深容易造成堆栈空间溢出迭代就是一段代码实现的循环,不同的是有一个计数器在控制循环,和普通循环不同的是迭代的入参同时也是保存结果的返回值,并且返回值会作为下一次迭代的入参。...

2020-12-06 14:25:32 166

转载 剑指offer 反转字符串三

#反转字符串 三##举例子:“Now Coding”, return “woN gnidoC”三种方法:一种使用遍历s.split()一种使用列表推导式,对于列表s.split()进行推演,列表转字符还有一种先把列表反转转化为字符,再反转字符列表转字符使用’’’.join(list[])本篇是刷题理解思考,原答案地址:https://github.com/Jack-Cherish/LeetCode/blob/master/String/Easy/557.Reverse%20Words%20i

2020-12-05 21:19:41 104

原创 剑指offer 字符串处理之返回给定字符串中的最长的回文字符串

找出给定字符串中的最长回文字符串##举例子:“ababd”, 返回 “abab”“BBBBBB”, 返回"B"解法是从上一题学的,自动迁移,使用temp来存储遍历过的字符,然后遍历给定字符串,遇见遍历过的字符,那么自动开始进行回文判断,判断合格存储在哈希表里,然后在哈希表里找到最长字符串注意求哈希表里的最长字符串,可以使用dict.keys()和dict.values()转化为列表处理,然后利用index()方法建立联系...

2020-12-05 13:06:27 120

转载 剑指offer一刷 字符串之找出最长的无重复字符串并返回长度

欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;增加了 图片

2020-12-05 11:03:13 76

空空如也

空空如也

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

TA关注的人

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