无题
链表合并两个有序链表合并两个有序链表
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
递归思路:首先判断是否存在空链表,若存在返回另一个即可。其次取两个链表的最小值相比较,将较大的节点拼接在较小的节点之后,保留较小的值,将剩余节点按照同样方法凭借,不断修改next的值即可。
class Solution {public: ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) { if(list1 == nullptr) { return list2; }else if(list2 == nullptr) { return list1; }else if(list1->val<list2->val){ list1->next=mergeTwoL ...
无题
ctfshow2
查询可知为jsfuck,相应网站解密即可
CTF在线工具-在线JSfuck加密|在线JSfuck解密|JSfuck|JSfuck原理|JSfuck算法 (hiencode.com)
3
还是奇奇怪怪的东西,发现有乱码,txt打开源文件,发现都是颜文字
打开颜文字解码网站
http://hi.pcmoe.net/kaomoji.html
4
rsa算法
使用rsa-tool,输入pq和e,e为16进制,所以为11
得到d
5
m=c^d(mod n),带入即可
6
在线Rabbit加密 | Rabbit解密- 在线工具 (sojson.com)
7
[Brainfuck/Ook! Obfuscation/Encoding splitbrain.org]
8
[Brainfuck/Ook! Obfuscation/Encoding splitbrain.org]
9打开发现是一个加密的压缩包,密码爆破
serpent加密,但是没找到解密网站
10打开文件发现是下面这段字符串
=E7= ...
操作系统
前言杂烩
int fork();
创建进程。正确返回:等于0表示是子进程,大于0表示当前进程是父进程;错误返回:小于0,表示进程创建失败。
int getpid();
取得当前进程的标识符(进程ID)。
int getppid();
取得当前进程的父进程ID。
int getpgrp();
取得当前进程的组标识符。
int getpid(int pid);
将当前进程的组标识符改为当前进程的ID,使其成为进程组中的首进程,并返回这一新的组标识符。
pid_t wait()/waitpid();
wait()函数会使父进程暂停执行,直到它的一个子进程结束为止,返回值为子进程的PID;
waitpid()用于等待某个特定进程的结束。
在子进程结束前,wait()可以使调用者堵塞,而waitpid()可以通过选项使调用者不堵塞,wait()是waitpid()的一个特例。
exit(int status);
释放程序所占的资源并通知父进程删除,此时该进程处于僵死状态,status是调用进程终止时传递给其父s进程的值,若调用进程还有子进程,则将所有子进程的父进程改为1号进 ...
cqhttp机器人
前言 闲着无聊又碰上chatgpt大火,想尝试着搭建一个qq机器人玩玩
参考链接(179条消息) 使用go-cqhttp搭建一个简易的QQ机器人(入门)_sanananana的博客-CSDN博客_go-cqhttp
OneBot 事件和 API | NoneBot
碰到的问题端口号没处理好,导致运行错误
string容器
string容器参考链接:https://www.bilibili.com/video/BV1et411b73Z?p=189
(157条消息) C++入门——string容器_cqu_shuai的博客-CSDN博客_子串插入
1.string基本概念本质:
· string是c++风格的字符串,而string本质上是一个类
string和char*区别:
· char*是一个指针
· string是一个类,类内部封装了char,管理这个字符串,是一个char型的容器
特点****:
string类内部封装了很多成员方法
例如:查找find,拷贝copy,删除delete,代替replace,插入insert
string管理char*所分配的内存,不用担心赋值越界和取值越界等,由类内部进行负责。
string构造函数构造函数原型:
string(); //创造一个空的字符串string(const char*s) //使用字符串s初始化string(const string& str); //使用一个string对象初 ...
STL
参考链接:基础篇:STL容器和算法 - 知乎 (zhihu.com)
1.STL基本概念⚪STL(Standard Template Library,标准模板库)
⚪STL从广义上分为:容器(container)算法(algorithm)迭代器(iterator)
⚪容器和算法之间通过迭代器进行无缝衔接
⚪STL几乎所有的代码都采用了模板类或者函数模板
2.STL六大组件1.容器:各种数据结构,如vector,list,deque,set,map等,用来存放数据。
2.算法:各种常用算法。如sort、find、copy、for_each等。
3.迭代器:扮演了容器和算法之间的粘合剂
4.仿函数:行为类似函数,可以作 为算法的某种策略。
5.适配器:一种用来修饰容器或者仿函数或者迭代器接口的东西
6.空间适配器:负责空间的配置与管理
3.STL中容器、算法、迭代器STL容器就是将运用最广泛的一些数据结构实现出来。容器用来管理某类对象。常用的数据结构:数组(array) , 链表(list), tree(树),栈(stack), 队列(queue), 集合(set),映射表(map), 根 ...
链表
链表1.什么是链表链表是结构体变量与结构变量连接的一起
2.怎么动态创建链表动态内存申请+模块化设计
(1)创建链表(创建一个表头表示整个链表)struct Node{ int data; //数据域 struct Node* next; //指针域}struct Node* createList(){ struct Node* headNode=(struct Node*)malloc(sizeof(Node)); //headNode成为了结构体变量,变量使用前必须被初始化 //headNode->data=1 headNode->next=NULL; return headNode;}
(2)创建节点struct Node* createNode(int data){ struct Node*newNode=(struct Node*)malloc(sizeof(struct Node)); newNode->data=data; newN ...
