自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法分析知识点

2024-03-04 00:00:00 196

原创 简单介绍什么是数据结构与算法(概要)

2024-03-03 00:00:00 198

原创 BF算法实现(Python,C++)

进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法,即暴力(Brute Force)算法,是普通的。算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个。

2024-03-02 08:00:00 590

原创 C++的一些细节技巧

要将字符串存入数组,需要先定义一个适当大小的数组,并且确保该数组足够容纳所有字符(包括结尾的空字符)。在C++中将字符串存入列表(List)可以使用标准库的。下面是一种常见的方法,通过使用。在C++中,可以使用。

2024-03-01 08:00:00 451

原创 括号匹配的检验(Python)

3.从栈1的栈顶不断的弹出元素到栈2当中,期间栈2时刻检查栈2的栈顶与和栈2的栈顶相邻的元素(括号)是否匹配,若匹配则相消。(此处可设计一个专门用来检查的函数check())4.知道栈1中的元素全部弹出,若最后栈2中的元素全部都相消完了,则这些括号是合法匹配,否则就是无法匹配。2.从用户那里获取输入一串括号到栈1中。1.设置两个栈——栈1,栈2。

2024-02-29 08:00:00 1088

原创 大蟒蛇(Python)笔记(链接目录)

(PS:后续章节待补充编辑到此博客中)

2024-02-28 08:00:00 126

原创 C++ Primer 笔记(链接目录)

(PS:后续章节待补充编辑到此博客中)

2024-02-27 08:00:00 290

原创 C++与Python的一些(一部分)区别

10.在C/C++中数组和字符串似乎是互通的,但是在Python中列表与字符串却不是互通的,例如列表就无法使用字符串所可以使用的一些方法,比如lower()......例如缩进在Python中要求是较为严格的,参与语法规则的组成,而在C++中则要求并不那么严格,不参与语法规则的组成。Python的赋值操作具有引用的效果,而C++的赋值操作具有复制效果。Python相比于C++,不仅支持位置实参,还支持关键字实参。Python:and(逻辑与),or(逻辑或)C++:&&(逻辑与),||(逻辑或)

2024-02-26 08:00:00 599

原创 使用Python实现选择(类似于C/C++中switch/case)的方法

需要注意的是,在Python中,使用`if-elif-else`语句或字典映射通常已经足够满足需求。使用第三方库可能会增加代码的复杂性和依赖性。因此,在选择模拟switch功能的方法时,应考虑项目的具体需求和复杂度。

2024-02-25 08:00:00 512

原创 进制转换(2,8,10,16进制的数相互转换)(Python)

首先用户请求用户输入希望将几进制(m)的数转化为几进制(x)的数。通过对两个函数的调用使得所有进制之间可以相互转换。先将所有输入的数字先统一转化为十进制的。一、将所有进制的数转换为十进制的数。输入要进行转换的数字(num)。二、将十进制数转换为所有进制数。

2024-02-24 08:00:00 671

原创 如何将一个字符串中的字符提取出来(Python与C/C++)

方法将字符串拆分为字符列表:(它是将字符串以空格为分界线将其存入列表中。

2024-02-23 19:18:00 898 1

原创 C++ Primer 笔记(总结,摘要,概括)——第7章 类

目录​编辑7.1 定义抽象数据类型 7.1.1 设计Sales_data类 7.1.2 定义改进的Sales_data类 7.1.3 定义类相关的非成员函数 7.1.4 构造函数 7.1.5 拷贝、赋值和析构7.2 访问控制和封装 7.2.1 友元7.3 类的其他特性 7.3.1 类成员再探 7.3.2 返回*this的成员函数 7.3.3 类类型 7.3.4 友元再

2024-02-22 00:47:52 533

原创 C++ Primer 笔记(总结,摘要,概括)——第6章 函数

目录6.1 函数基础 6.1.1 局部对象 6.1.2 函数声明 6.1.3 分离式编译6.2 参数传递 6.2.1 传值参数 6.2.2 传引用参数 6.2.3 const形参和实参 6.2.4 数组形参 6.2.5 main:处理命令行选项 6.2.6 含有可变形参的函数6.3 返回类型和return语句 6.3.1 无返回值函数 6.3.2 有返回值

2024-02-22 00:30:13 384

原创 C++ Primer 笔记(总结,摘要,概括)——第5章 语句

目录5.1 简单语句5.2 语句作用域5.3 条件语句 5.3.1 if语句 5.3.2 switch语句5.4 迭代语句 5.4.1 while语句 5.4.2 传统的for语句 5.4.3 范围for语句 5.4.4 do while语句5.5 跳转语句 5.5.1 break语句 5.5.2 continue语句 5.5.3 goto语句5.6 try语句块和异常处理

2024-02-22 00:04:50 334

原创 C++ Primer 笔记(总结,摘要,概括)——第4章 表达式

目录4.1 基础 4.1.1 基本概念 4.1.2 优先级与结合律 4.1.3 求值顺序4.2 算术运算符4.3 逻辑和关系运算符4.4 赋值运算符4.5 递增和递减运算符4.6 成员访问运算符4.7 条件运算符4.8 位运算符4.9 sizeof运算符4.10 逗号运算符4.11 类型转换 4.11.1 算数转换 4.11.2 其他隐式类型转换 4.11.3 显示转换4.12 运算符优先级表小结术语表

2024-02-21 23:19:31 475

原创 C++ Primer 笔记(总结,摘要,概括)——第3章 字符串、向量和数组

目录3.1 命名空间的using声明3.2 标准库类型string 3.2.1 定义和初始化string对象 3.2.2 string对象上的操作 3.2.3 处理string对象中的字符3.3 标准库类型vector 3.3.1 定义和初始化vector对象 3.3.2 向vector对象中添加元素 3.3.3 其他vector操作3.4 迭代器介绍 3.4.1 使用迭代器 3.4.2 迭代器计

2024-02-21 20:24:39 249

原创 C++ Primer 笔记(总结,摘要,概括)——第2章 变量和基本类型

目录2.1 基本内置变量 2.1.1 算术类型 2.1.2 类型转换 2.1.3 字面值常量2.2 变量 2.2.1 变量定义 2.2.2 变量声明和定义的关系 2.2.3 标识符 2.2.4 名字的作用域 2.3 复合类型 2.3.1 引用 2.3.2 指针 2.3.3 理解复合类型的声明2.4 const限定符 2.4.1 const的引用

2024-02-21 18:11:43 362

原创 C++ Primer 笔记(总结,摘要,概括)——第1章 开始

目录1.1 编写一个简单的C++程序 1.1.1 编译、运行程序1.2 初识输入输出1.3 注释简介1.4 控制流 1.4.1 while语句 1.4.2 for语句 1.4.3 读取数量不定的输入数据 1.4.4 if语句1.5 类简介 1.5.1 Sales_item类 1.5.2 初识函数成员1.6 书店程序小结术语表

2024-02-21 14:04:50 329

原创 大蟒蛇(Python)笔记(总结,摘要,概括)——第11章 测试代码

目录11.1 使用pip安装pytest 11.1.1 更新pip 11.1.2 安装pytest11.2 测试函数 11.2.1 单元测试和测试用例 11.2.2 可通过的测试 11.2.3 运行测试 11.2.4 未通过的测试 11.2.5 在测试未通过时怎么办 11.2.6 添加新测试11.3 测试类 11.3.1 各种断言 11.3.2 一个要测试的类

2024-02-21 02:35:47 412

原创 大蟒蛇(Python)笔记(总结,摘要,概括)——第10章 文件和异常

10.1 读取文件 10.1.1 读取文件的全部内容 10.1.2 相对文件路径和绝对文件路径 10.1.3 访问文件中的各行 10.1.4 使用文件的内容 10.1.5 包含100万位的大型文件 10.1.6 圆周率中包含你的生日吗10.2 写入文件 10.2.1 写入一行 10.2.2 写入多行10.3 异常

2024-02-20 23:21:19 283

原创 大蟒蛇(Python)笔记(总结,摘要,概括)——第9章 类

假设有两个文件,一个为car.py(其中有定义好的Car类的模板),另一个为my_car.py(需要应用到类Car)。

2024-02-20 18:14:38 932

原创 大蟒蛇(Python)笔记(总结,摘要,概括)——第8章 函数

可以通过切片的方法向函数传递列表的副本。

2024-02-20 15:12:55 372

原创 大蟒蛇(Python)笔记(总结,摘要,概括)——第7章 用户输入和while循环

如果不小心编写了一个无限循环的程序,并且运行了它,既可按Ctrl+C,也可关闭显示程序输出的终端窗口。

2024-02-20 00:16:47 461

原创 大蟒蛇(Python)笔记(总结,摘要,概括)——第6章 字典

使用values()方法,实际上和keys()方法的使用方法一样,这里不做赘述。使用set()提取其中的元素(不重复),用来创建一个集合。其中的‘key’和‘value’也可以换成其他变量名。使用keys()方法。

2024-02-20 00:02:24 553

原创 大蟒蛇(Python)笔记(总结,摘要,概括)——第5章 if 语句

可使用关键字"not in"使用lower()方法。可使用关键字"in"

2024-02-19 23:13:53 578 1

原创 大蟒蛇(Python)笔记(总结,摘要,概括)——第4章 变量和简单的数据类型

print(dimensions[0])#输出200print(dimensions[1])#输出50。

2024-02-19 20:21:53 807 1

原创 大蟒蛇(Python)笔记(总结,摘要,概括)——第3章 列表简介

注意:remove()方法只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环,确保将每个值都删除。你可以像使用其他变量一样使用列表中的各个值。例如,可以使用f字符串根据列表中的值来创建消息。如果让Python将列表打印出来,Python将打印列表的内部表示,包括方括号。大多数编程语言是如此规定的,这与列表操作的底层实现有关。2.在列表中插入元素:使用 insert() 方法。3.删除列表中任意位置的元素:使用pop()方法。4.根据值删除元素:使用 remove() 方法。

2024-02-19 00:47:55 312 1

原创 大蟒蛇(Python)笔记(总结,摘要,概括)——第2章 变量和简单的数据类型

2.在其他任何运算中,如果一个操作数是整数,另一个操作数是浮点数,结果也总是浮点数。确保字符串右端没有空白:rstrip() 方法(这种删除办法是暂时的)确保字符串左端没有空白:lstrip() 方法(这种删除办法是暂时的)在程序中,可随时修改变量的值,而Python将始终记录变量的最新值。确保字符串两端没有空白:strip() 方法(这种删除办法是暂时的)1.将任意两个数相除,结果总是浮点数,即便这两个数都是整数且相除。使用 removeprefix() 方法(这种删除办法是暂时的)使用井号“#”标识。

2024-02-18 23:37:29 1045 1

原创 大蟒蛇(Python)笔记(总结,摘要,概括)——第1章 起步

正是由于Python具有边编译边编译的特性才使得它可以完成这项操作。

2024-02-17 23:54:15 230 1

原创 Python:类在深拷贝中的一个小细节

正如我们所知的,对类的实例进行深拷贝时是会对子对象进行拷贝的。但是它不会对类中的一种对象进行深拷贝——在类模板中定义的对象。因此,我们在对类定义的对象进行我们想要的深拷贝时,还要手动地对这一类对象进行深拷贝。这个小细节是在写这篇博客(

2024-02-15 19:37:01 642 1

原创 通过模拟对栈的操作来求解所有可能的出栈序列(Python)

周而复始,循环操作此列表中的元素(模拟栈的对象),当这个列表中所有的元素(模拟栈的对象)被销毁完的时候。简要算法思路,建立一个列表1(object_list=[])用来存储初始化的对象以及将要生成的对象,循环处理列表中的元素(模拟入栈,出栈的过程)创建一个类用来模拟栈,类中有具有出栈与入栈功能的方法,有属性:出栈序列(含已出栈的元素),入栈序列(含未入栈的元素),和栈(当前栈的状态)。若处理之后的对象中的出栈序列长度达到指定值(即入栈序列的长度),则输出此对象中(出栈序列对应的)实例,然后销毁此对象。

2024-02-15 19:19:57 236 1

原创 Python中关于用变量名相互赋值的一些小细节

在前面所说的基础上,“a=b”表示引用a指向引用b指向的对象,那么a指向的对象的引用为0了,对象也就被销毁了,这也就说明了:输出的a却不是[0]了。起初,c和d都分别指向一个cla类的对象,“c=d”创建了一个引用c指向d指向的对象,原来c指向的对象的引用数为0,于是,原来指向的对象也就被销毁了,那么下文中的c.a和d.a其实也就没了区别,也没办法通过其他的引用来改变list_1的值了,因为此时list_1所指向的对象就只剩下了list_1这一个引用了。——这篇博客也是对这个问题的讲解,感兴趣可以看看。

2024-02-15 16:37:53 558 1

原创 矩阵的压缩存储(与解压缩)

压缩:待压缩矩阵为二维数组a,用以为数组x用来存储压缩后的矩阵,矩阵中的常数c存储在x[0],a[ij]存储在x[n]中——n=[1+2+...+(i-2)]+(j+1)-1+1=(i-1)(i-2)/2+j+1,一维数组x的最后一个元素存储为1(若为下三角矩阵则存储为2)。解压缩:假设压缩后的数据存储在数组x中,建立一个二维数组y(即矩阵),将数组x中的数据按顺序存储在二维数组y的下三角区,然后再通过a(ji)=a(ij)来补充二维数组y(即矩阵)对称矩阵,对角矩阵,三角矩阵,稀疏矩阵的压缩与解压缩。

2024-02-14 19:41:41 318 1

原创 解约瑟夫问题(及求解规律)(Python)

在下面的这个代码中你可以输入两个数,例如100与2,那么他就会使得元素总数从1循环到100,将“报数”为2的元素删除来作为条件,解决约瑟夫问题。事实上,这个规律(当删除元素的报数为2)较为简单易发现,其他的似乎有点不容易总结,我也没有细看,所以有明白的,懂的,能总结的欢迎评论留言。从给出的数字里面,我们其实是可以看到约瑟夫问题的一些规律,下面给出一段结果(以127和2为参数)由此我们便找到了当删除元素的报数为2时,最后的剩余元素的规律。这几组数列都是以1开头的奇数列(2为公差)我们可以从中看到一些规律。

2024-02-14 00:52:14 902 1

原创 24年春晚刘谦的魔术(可选择是否明牌)(Python)

其实过程是比较好模拟的,因为其中的逻辑都比较简单,容易编写,我的这段代码之所以很长,是因为我让它可以选择是否明牌,也就是用的比较笨的办法:if语句判断用户是否需要,然后复制粘贴不明牌的魔术模拟代码,在其中加入printf()语句就可以了。关键的一步:将123插入到41234中去,假设插入到3和4之间形成了41231234,其实这一步怎么插都无所谓,因为它都会保证首尾的元素相同。"一个台湾魔术师证明了,虽然分裂成两块,但是不管如何操作,不论南北方,性别,姓名,最后两边都终将统一。

2024-02-13 23:46:25 265 1

原创 通过全排列以及判断的方法来求出所有的出栈序列(Python)

用户输入入栈的序列,使用函数1得到一个含有全排列的列表,再使用函数2进行循环来判断由函数1获取的出栈序列,并将其中符合条件的出栈序列进行输出。设计一个函数1,可以根据给定的元素,将元素进行全排列,从而获取出栈序列(不过注意:这个出栈序列不一定是合法的)再设计一个函数2,给定一个出栈序列和一个入栈序列,就可以判断给定的出栈序列是否合法。

2024-02-12 01:39:05 322 1

原创 获取一个整数n,将其拆成k个整数,求其所有可能的拆法(Python)

此时还剩下n-k-1没有被安排,那么就开始判断列表2中存储的每个列表是否满足上述特点,同理,将满足的进行+1并存储在列表1中,然后再清空列表2。判断每个元素的值+1之后是否依旧满足上述的特点,如果是则将其+1,并将产生的新列表存储在列表2中,然后清空列表1。我们也可以很轻松的知道当n-k为偶数时,最后所有可能的拆法是存储在列表1中的,否则就存储在列表2中。就这样,周而复始,循环往复,直到n-k全部被安排掉了为止。获取一个整数n,将其拆成k个整数(很显而易见,k

2024-02-11 23:13:32 191

原创 求n个元素中k个元素的所有组合情况(Python)

首先,我们尝试将每个元素编号(即1,2,3,4...),我们从中随机取出k个元素进行组合,那么这k个元素所对应的编号之和对应一个数字a(注意:每一种组合都对应着唯一一个数字a,但每一个数字a可能对应着不止一种组合),我们可以很容易地知道a的取值范围(1+2+3...+k=((1+k)*k)/2

2024-02-11 18:00:15 767 1

原创 列出n个元素的全排列结果(Python)

引入:例如我们只要看‘1’和‘2’的全排列情况,那么我们可以这样做:先将‘1’放置(排列)在这里(毫无疑问,只有一种情况,那就是‘1’),然后再来放置‘2’,将第2个元素尝试插在列表1中的不同排列中的不同位置以获取新的排列,然后将此排列存储到列表2中并删除列表1的所有内容。将第3个元素尝试插在列表1中的不同排列中的不同位置以获取新的排列,然后将此排列存储到列表1中并删除列表2的所有内容。将第4个元素尝试插在列表1中的不同排列中的不同位置以获取新的排列,然后将此排列存储到列表2中并删除列表1的所有内容。

2024-02-10 18:25:27 490

原创 判断出栈序列的正误(Python)

由此列出一条关于出栈序列中元素的性质:任意认定出栈序列中的一个元素,在此元素位置之后(按出栈序列来看位置先后)的比此元素小的全体元素按由大到小进行排列(即逆序排列)2.按照上述性质在出栈序列中逐元素地进行检验,若有元素不满足上述性质则此出栈序列不存在,反之,则存在。声明:将入栈序列中位置在较前面的元素称为较小的元素,位置较靠后的元素称为较大的元素。1.将元素在入栈序列中进行编号(由小到大)已提供源文件,欢迎建议与交流。

2024-02-08 20:52:24 280

BF算法实现(Python,C++)

BF算法实现(Python,C++)

2024-02-27

括号匹配的检验(Python)

括号匹配的检验(Python)

2024-02-24

进制转换(2,8,10,16进制的数相互转换)

进制转换(2,8,10,16进制的数相互转换)

2024-02-23

Python:类在深拷贝中的一个小细节

Python:类在深拷贝中的一个小细节

2024-02-15

Python:类在深拷贝中的一个小细节

Python:类在深拷贝中的一个小细节

2024-02-15

解约瑟夫问题(及求解规律)(Python实现)

解约瑟夫问题(及求解规律)(Python实现)

2024-02-14

24年春晚刘谦的魔术(可选择是否明牌)(Python实现)

24年春晚刘谦的魔术(可选择是否明牌)(Python实现)

2024-02-13

通过全排列以及判断的方法来求出所有的出栈序列(Python实现)

通过全排列以及判断的方法来求出所有的出栈序列(Python实现)

2024-02-12

获取一个整数n,将其拆成k个整数,求其所有可能的拆法(Python实现)

获取一个整数n,将其拆成k个整数,求其所有可能的拆法(Python实现)

2024-02-11

求n个元素中k个元素的所有组合情况(Python实现)

求n个元素中k个元素的所有组合情况(Python实现)

2024-02-11

给出一组元素,将其进行全排列(Python实现)

给出一组元素,将其进行全排列(Python实现)

2024-02-10

关于某出栈序列是否成立的判断(Python实现)

关于某出栈序列是否成立的判断(Python实现)

2024-02-08

空空如也

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

TA关注的人

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