- 博客(5)
- 问答 (1)
- 收藏
- 关注
原创 AtCoder Beginner Contest 301 C题
给你两个字符串s,t由小写字母和@组成,你可以将@替换成“a" "t" "c" "o" "d" "e" "r"替换后将两个字符串重新排列,如果能得到这两个字符串相等,那么输出Yes,否则输出No我刚开始想的是将两个排序后从头遍历到末尾记录两个字符串不一样的个数,但是后面发现排序可能会出现两个字符串 分别为acoo 和 co@@,很明显这种情况得到结果是Yes,但是如过从头遍历到尾s[0]!
2023-05-14 14:09:04 143
原创 字符串匹配KMP算法
KMP算法是目前我遇到的第一个比较难的算法,花了一整天时间才算粗略的理解。KMP算法是对字符串匹配的朴素算法做出优化,说起KMP算法让我们先了解字符串匹配。字符串匹配相关的算法有朴素算法,Rabin-Karp算法(这里不做具体介绍),KMP算法, 这里我们主要讨论KMP算法在编辑文本程序的过程中,我们经常需要在文本中找到某个模式的所有出现位置。
2023-05-04 19:24:22 202 1
原创 数组模拟双链表
插入操做是从右边插入的模板,若想实现从左边插入则可以调用这个函数不过是将k,改为l[k]这里我们设定这个链表左端点的下标为0,右端点的下标为1,那么idx也就自然是从2开始了。删除操作比较简单就不做详细说明了,需要注意的是k的下标是从2开始的。初始时k点的右端的点的左端为k,插入后则就是现在这个点。当然也可以实现从左端点或者右端点的操作。k点插入后的右端点为此时插入的这个点。插入点的右端点为k点的右端点 就是。最后我们实现一下对这个链表的访问。插入点的左端点为k点。注:以上两步不能颠倒。
2023-05-02 16:13:59 61
原创 用数组模拟单链表
题目中第 k 个插入的数并不是指当前链表的第 k 个数。例如操作过程中一共插入了 n 个数,则按照插入的时间顺序,这 n 个数依次为:第 1 个插入的数,第 2 个插入的数,…第 n 个插入的数。看似插入或删除后留下的下标很混乱,但实际上通过ne[i]遍历就可以很轻松解决了。总而言之只要理清楚e[]和ne[]之间的关系就能轻松的实现用数组来模拟单链表。现在要对该链表进行 M 次操作,进行完所有操作后,从头到尾输出整个链表。第一行包含整数 M,表示操作次数。共一行,将整个链表从头到尾输出。
2023-05-01 02:27:45 93 1
原创 高精度算法
高精度中的大整数采用使用字符串string的方式来存储每个位置上的数,存储完成之后模拟我们自己计算加减乘除的方式来实现高精度的加减乘除。其减法的模板如下,这里我们需要把前缀的0给删去如(111-109=002),这里就是把前面的两个0给删去。高精度减法就是两个大整数(A-B),其中默认A>B,如果A
2023-03-30 10:50:39 88
空空如也
谁能帮我看下哪里写错了
2022-11-16
为什么输入100 200 输出结果是18729
2022-11-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人