1. 最长平衡子字符串
题意
给你一个仅由 0 和 1 组成的二进制字符串 s。如果子字符串中 所有的 0 都在 1 之前 且其中 0 的数量等于 1 的数量,则认为 s 的这个子字符串是平衡子字符串。请注意,空子字符串也视作平衡子字符串。返回 s 中最长的平衡子字符串长度。子字符串是字符串中的一个连续字符序列。
给你一个仅由 0 和 1 组成的二进制字符串 s。如果子字符串中 所有的 0 都在 1 之前 且其中 0 的数量等于 1 的数量,则认为 s 的这个子字符串是平衡子字符串。请注意,空子字符串也视作平衡子字符串。返回 s 中最长的平衡子字符串长度。子字符串是字符串中的一个连续字符序列。
vulnhub是个提供各种漏洞平台的综合靶场,可供下载多种虚拟机进行下载,本地VM打开即可,像做游戏一样去完成渗透测试、提权、漏洞利用、代码审计等等有趣的实战。
LC-116、LC-117、LC-124、LC-133、LC-199,LC-130, LC-200, LC-207, LC-210,涉及知识深度优先搜索。本文选取典型,简要介绍深度优先搜索在图、树以及其他相关问题上的应用。
感谢一位iie攻防大佬的安利,开始试水tryhackme网站上的一些小实验,之后可能还会跟进做一些vulnhub的渗透~本文简要记录我在tryhackme的第一个实验"Walking An Application"的相关内容。该实验主要是介绍了使用F12的开发者工具,可以浏览哪些网站相关信息。实验链接尝试黑客我|浏览应用程序 (tryhackme.com)
\[ P(A|B)=\frac{P(B|A)P(A)}{P(B)}=\frac{P(B|A)P(A)}{P(B|A)P(A)+P(B|\sim A)P(\sim A)} \]
本次实验要求实现的是一个流重组器(Stream Reassembler)。在 lab0 中我们实现了顺序流的结构 ByteStream,在实际 TCP 连接中,两端的 socket 中各有一个 ByteStream,用来存储从对方接收到的字节流,供主机进程读取数据。在真实的 TCP 通信中,这些字节流的到来是乱序的,另外还可能会发生重传、丢失、重叠等情况。因此本实验设计的流重组器功能就是将这些杂乱的数据重新整理成顺序排列的信息,确保存入 ByteStream 的是正确的字节流。
LC-136、LC-147、LC-148、LC-912、LC-215,涉及知识点位运算、归并排序、快速排序。本文重点讲解快速排序相关知识,并介绍一部分归并排序相关内容。
LC-44、LC-118、LC-119、LC-63、LC-72、LC-115,涉及知识点动态规划。
参考《算法导论》简单介绍动态规划思想。与分治思想类似,动态规划思想也是通过组合子问题的解来推导出原问题的解,区别在于,动态规划思想中,各子问题之间存在重叠。
lab0 主要有四项任务,分别是使用 telnet 获取网页内容,使用 telnet 发送电子邮件,编写一个 webget 程序获取网页内容,以及完成一个读取内存字节流的程序。
LC-241、LC-22、LC-10、LC-32、LC-42,涉及知识点记忆化搜索、动态规划等。
参考《算法导论》简单介绍分治法的核心思想:将一个大问题分解为若干子问题,然后递归地求解子问题,最终合并为大问题的答案。二分查找等经典算法本质上也是使用了分治策略的思想,因为之前已经详细介绍二分查找,因此此处不再介绍,仅介绍几个在其他背景下涉及分治思想的题目。