数据结构-3、栈、队列和数组
# 3.1、栈
# 3.1.1、栈的基本概念:
# 1、栈的定义:
栈是只允许在一端进行插入或删除操作的线性表。首先,栈是一种线性表,但限定这种线性表只能在某一端进行插入和删除操作,如下图:
栈顶(Top)。线性表允许进行插入删除的那一端。
栈底(Bottom)。固定的,不允许进行插入和删除的另一端。
空栈。不包含任何元素的空表。
假设某个栈 S=(a1,a2,a3,a4,a5)S=(a_1,a_2,a_3,a_4,a_5)S=(a1,a2,a3,a4,a5),如上图所示,则 a1a_1a1 为栈底元素,a5a_5a5 为栈顶元素。由于栈只能在栈顶进行插入和删除操作,进栈次序依次为 a1,a2,a3,a4,a5a_1,a_2,a_3,a_4,a_5a1,a2,a3,a4,a5,而出栈次序则与入栈次序相反。由此可见,栈的操作特性可以明显地概括为后进先出(LIFO)。
栈的数学性质:n 个不同元素进栈,出栈元素不同排列的个数为 1n+1C2nn\frac{1}{n+1}C^n_2nn+11C2nn 。上述公式称为卡特兰数,可采用数学归纳 ...
数据结构笔记-2、线性表
# 2.1、线性表的定义和基本操作
如有侵权请联系删除。
# 2.1.1、线性表的定义:
线性表是具有相同数据类型的 n (n>=0) 个数据元素的有限序列,其中 n 为表长,当 n = 0 时线性表是一个空表。若用 L 命名线性表,则其一般表示为:
L=(a1,a2,a3,...,ai,xi+1,...,an)L=(a_1,a_2,a_3,...,a_i,x_{i+1},...,a_n)
L=(a1,a2,a3,...,ai,xi+1,...,an)
式中, a1a_1a1 是唯一的 “第一个元素”,又称表头元素;ana_nan 是唯一的 “最后一个元素”,又称表尾元素。除第一个元素外,每个元素有且仅有一个直接前驱。除最后一个元素外,每个元素有且仅有一个直接后驱。
由此,线性表的特点是:
表中元素的个数有限。
表中元素具有逻辑上的顺序性,表中数据有其先后次序。
表中元素都是数据元素,每个元素都是单个数据。
表中元素的数据类型都相同,这意味着每个元素都占有相同大小的存储空间。
表中元素具有抽象性,即仅讨论元素间的逻辑关系,而不考虑元素究竟表示什么内容。
...
随机二次元图api相关
# 爬虫获取所有图片:
# 背景:
最近做一些 Web 题,发现了些网页的背景会随机出现,每一次刷新都会出现不一样的图,感觉有点意思,试着研究下,当然,肯定不是研究咋弄的这个,而是,api 里的图怎么爬取:
# 首先:
接口文档如下:
之后直接上源码:
1234567891011121314151617181920212223242526272829303132333435363738import requestsimport osdef pe(): for i in range(1,3400): url = "https://img.loliapi.cn/i/pe/img{}.webp".format(str(i)) print(url) resp = requests.get(url) if resp.status_code == 404: break if os.path.exists("./img/pe/img{ ...
【2024】LitCTF
# Misc:
# 1、涐贪恋和伱、甾―⑺dé 毎兮毎秒:
题目描述:laosebi,无脑 LSB 隐写,全取最低位的 LSB 隐写,拿到 flag。有大佬直接 zsteg 秒了,在这里提一下
# 2、你说得对,但__
下载下来是一个图片,通过 foremost 分离图片,得到四张图片,每一张都是一个二维码的一部分,拼出来扫一下就行了,完事儿:
1LitCTF{Genshin_St@rt!!}
# 3、原铁,启动!
好离谱的题,不过题目的提示很明显了,我没发现,我的问题,原铁,再加上题目描述,推测应该是原神和崩铁的通用字体,直接上网站里对照这来,https://genshin.pro-ivan.com/genshinfonttranslator/demo/,最后发现前半部分是原神,后半部分是崩铁的字体:
1LitCTF{good_gamer}
# 4、盯帧珍珠
题目给了一张 jpg 图片,放到 010 里面发现文件头为 gif 格式的,修改后缀后使用工具分离得到一堆图片,在其中可以发现组成 flag 的部分(我的 010 出了问 ...
【2023】LitCTF
# LitCTF2023(复现)
# Web:
# 1、我 Flag 呢?
ctrl+u 读取源码,在最后发现了 flag:
1<!--flag is here flag=NSSCTF{3d5218b9-4e24-4d61-9c15-68f8789e8c48} -->
# 2、PHP 是世界上最好的语言!!
右边那个框下面是 RUN CODE ,结合题目是 PHP,推测为 RCE,先输入 echo 123; 看看会发生啥:发现左边输出内容出现了 123,那么,直接 system (“cat /flag”); 成功拿到 flag:
1flag=NSSCTF{b26d3851-52f5-4a80-9e69-6417baf49d68}
# 3、导弹迷踪
js 游戏题,先看源码,这里看 game.js:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616 ...
JavaWeb基础(一)-IO操作
# Java I/O 工作机制:
注:简要笔记,示例代码可能较少,甚至没有。
# 1、Java 的 I/O 类库的基本架构。
Java 的 I/O 操作类在包 java.io 下,大概有将近80个类,这些类大概可以分为如下四组。
基于字节操作的 I/O 接口:InputStream 和 OutputStream 。
基于字符操作的 I/O 接口:Writer 和 Reader 。
基于磁盘操作的 I/O 接口:File。
基于网络操作的 I/O 接口:Socket。
# 1.1、基于字节的 I/O 操作接口
基于字节的 I/O 操作接口输入和输出分别是:InputStream 和 OutputStream 。InputStream 的类层次如下:
输入流根据数据类型和操作方式又被划分为若干个子类,每个子类分别处理不同操作类型。OutputStream 的类层次结构也类似,如下图:
# 1.2、基于字符的 I/O 操作接口
下图是写字符的 I/O 操作接口涉及的类,Writer 类提供了一个抽象方法 write(char cbuf[],int off,int le ...
三、Servlet基础
注:因为我并不完全是为了从 0 开始 Java 开发,因此,我这里先暂时跳过第二章服务器环境相关的内容,直接开始第三章的内容。
# 3.1、Servlet 的基本结构:
下面的代码给出了一个基本的 Servlet ,它处理 GET 请求。GET 请求是浏览器请求的常见类型,用来请求 Web 页面。用户在地址栏中输入 URL 、点击 Web 页面内的连接、或提交没有指定 METHOD 或 METHOD=“GET” 的 HTML 表单时,浏览器都会生成这个请求。 Servlet 还可以容易地处理 POST 请求(提交 METHOD=“POST” 的 HTML 表单时,会生成 POST 请求)。HTML 表单的使用细节以及 GET 和 POST 之间的区别。
123456789101112131415161718192021222324package com.firstweb.study01;import jakarta.servlet.ServletException;import jakarta.servlet.http.HttpServlet;import jakarta.serv ...
一、Servlet和JSP技术概述
注:该系列笔记是用于我在 《Servlet 与 JSP 核心编程》这本书中的学习笔记,无其他意思,侵权请联系 2082045221@qq.com 删除。
第一章内容较少,所以暂时有用的笔记也不多。
# 1.1、Servlet 的功用:
Servlet 是运行在 Web 服务器或应用服务器上的 Java 程序,它是一个,负责连接来自 Web 浏览器或其他 HTTP 客户程序的请求和 HTTP 服务器上的数据库或应用程序。Servlet 的工作是执行下面的任务,如图 1.1 所示:
读取客户发送的显式数据。
最终用户一般在网页的 HTML 表单中输入的这些数据。然而,数据还有可能来自于 Applet 或定制的 HTTP 客户程序。
读取由浏览器发送的隐式请求数据。
图 1.1 中显示了一条从客户端到 Web 服务器(Servlet 和 JSP 所在的层)的单箭头,但实际上从客户端传送到 Web 服务器的数据有两种,它们分别为用户在表单中输入的显式数据,以及后台的 HTTP 信息。两种数据都很重要。HTTP 信息包括 Cookie、浏览器所能识别的媒体类型和压缩模式等。
...
BUUCTF-Misc-第一页(1-16)
# Misc-BUU 刷题 - 第一页
# 1. 签到:
flag在题目描述里,直接交了。
# 2. 金胖:
没有题目描述。
题目是一个gif文件,放到pr等软件里逐帧看就可以了,flag{he11ohongke}
# 3. 你竟然赶我走:
附件是一个jpg文件,但是,打开啥都没有。
直接用记事本打开,翻到最底下,flag{stego_is_s0_bor1ing}
# 4. 二维码:
图片是个二维码,这里不放出来了,扫了之后没啥内容,那么记事本看看,存在一个4number.txt的一个文件,那么,通过010editor打开图片分析,发现图片里面含有一个txt文件,还是在压缩包中。
补充知识:
一个完整的 JPG 文件由 FF D8 开头,FF D9 结尾
在使用图片浏览器时,图片浏览器会忽略 FF D9 以后的内容,因此可以在 JPG 文件中加入其他文件。其他文件隐藏如 png.gif 文件隐藏也是这个道理。
直接在linux中使用foremost分离压缩包,之后成功拿到一个压缩包,打开有个4number.txt ...
小小的总结(日常发癫)
# 总地看看这个学期:
眨眼之间,我等的一个游戏快要公测了,原来是到了五月了。时间过得真快,这个学期感觉啥都没学就快要结束了。
想了想这个学期刚开校那会儿,一个月下来才只学了个无列名注入,总感觉没啥动力,很颓废,直到现在也是一样,除了摸鱼就是摸鱼,感觉不仅迷茫,还没啥动力。最后想了想,可能是因为我不知道学些啥了吧。并不是因为我掌握了,而是因为学不懂,才不知道咋学,陷入了一种死循环,接触了 Pwn 以后更是如此,但是,我又没有啥办法,Web 到了现在感觉有点抽象了,做题基本上都没啥思路,大部分都是靠 wp 才能成功复现出来,甚至一些很基础的考点我都想不到,感觉到了一个怎么学都上不去的境地。
越感觉学不懂,就越没动力,学得越少,然后越学不懂,死循环下去了。好在,我最近突然意识到,去打打比赛,与队友交流交流对我好像有不小的帮助,在各种方面都给了我不小的乐趣,自从队里同年级的人多起来之后,感觉越来越有学的动力了,相互之间调侃,相互之间交流,使原本枯燥乏味的学习过程变得稍微有了点乐趣,感觉累了的时候稍微休息休息,跟群里的某个男童鞋来一句 “兄弟,你好香。” 虽说没有很明显的轻松 ...














