
字符串
文章平均质量分 66
寂静山林
这个作者很懒,什么都没留下…
展开
-
UVa 11855 Buzzwords
枚举子串的长度,计数对应长度所有子串散列值的频次,按照要求输出即可,可以利用。读入原始字符串,将所有空格去除,令此时的字符串长度为。题目本质是要求统计频次,由于原始字符串长度不超过。,因此可以考虑使用字符串散列予以解决。,而枚举所有长度的子串时间复杂度为。原创 2024-11-14 18:35:12 · 839 阅读 · 0 评论 -
UVa 1328 Period
另外,当给定的字符串均由同一个字符构成且较长时,算法可能需要较长时间,此时可以使用一个小技巧,使用一个计数器,计数已经确定了循环节长度的前缀数量,如果数量达到。此处的关键问题是如何高效的比较子串是否相等,如果使用朴素的逐个字符比较的方法,会超时。算法来解题,而此算法看上去并不是那么直观,一般来说,看到此题,首先想到的是字符逐个比较的朴素方法。个,可以提前退出求解循环,提高效率(具体参见实现代码)。个字符的子串,那么,对于长度为。的循环节开始,逐个予以确定。类似的,可以依次比较长度为。的字符串,确定相应的。原创 2024-11-14 18:31:34 · 675 阅读 · 0 评论 -
UVa 10045 Echo
秒),却仍难以通过,因此可以考虑使用记忆化技巧,即将搜索过程中遇到的状态的结果进行记录,在下一次遇到时,不必重复搜索,而是直接返回结果,这样会大幅提高效率(这个技巧与动态规划中的备忘技巧很相似,同样可以应用该技巧的题目是。题目中给出了两个条件,一个是“回显”的条件,该条件说的是对于输入的每个字符,均可以在字符串中找到一个相同的字符与之对应,注意,这里是一一对应,不能两个字符对应同一个字符,如果满足该条件,则称之为满足“回显”条件。,但由于被截断,因此不满足“回显”的条件,只满足“缓存长度为。原创 2023-07-13 11:19:37 · 242 阅读 · 0 评论 -
UVa 12916 Perfect Cyclic String
如果是逐个字符比较,可能会超时,将字符串散列后,可以快捷的获取某个子串的散列值,以此散列值来进行比对会大大提高效率。由于需要确定最小的周期字符串,那么对于长度为。本题可以通过字符串散列来予以解决。个字符一组进行比对,检查。,则从第一个字符开始,每。的字符串来说,可以从。原创 2023-07-11 09:36:09 · 218 阅读 · 0 评论 -
UVa 12897 Decoding Baby Boos
题目给定一系列的替换规则以及最终的字符串,要求解题者按照规则替换字符串,显然,对于每个字符逐一根据规则逆向还原会超时,因此需要考虑更高效的方法。个大写字母在逆向应用规则后与哪个字母相对应,确定对应关系后,则可以直接输出。考虑到是按照顺序逆向应用规则,那么只需确定在最终给出的字符串中。注意,不需要考虑替换结果的逻辑性,因为本题并不存在合理的逻辑。的字母所对应的字母即可,也就是说,根据规则,反向确定。本题是一道模拟题目。原创 2023-07-11 07:41:03 · 323 阅读 · 0 评论 -
字符串散列
当两个不同的字符串依据上述方法转换得到的散列值相同时,称之为冲突(collide),为了尽量减少冲突出现的概率,可以使用两组(甚至多组)基数和模数,得到两个不同的散列值,将之配对来表示字符串的映射值,这样冲突的概率非常小。字符串散列(string hash,又称字符串哈希)是指在字符串和数值之间建立对应关系,相当于为字符串创建“指纹”。存在非常多的散列算法,下面介绍通过模运算实现的一种简易散列算法。有时并不需要获取整个字符串的散列值,而只需获取字符串某一部分的散列值,那么可以通过类似于前缀和的技巧来获取。原创 2023-07-11 07:36:57 · 281 阅读 · 0 评论 -
第3章 字符串:3.5.5 最长重复子串
原创 2020-06-02 10:38:12 · 285 阅读 · 0 评论 -
第3章 字符串:3.5.4 最长公共子串
原创 2020-06-02 10:35:20 · 288 阅读 · 0 评论 -
第3章 字符串:3.5.3 后缀数组
原创 2020-06-01 23:09:11 · 302 阅读 · 0 评论 -
第3章 字符串:3.5.2 Aho-Corasick算法
原创 2020-06-01 23:00:47 · 268 阅读 · 0 评论 -
第3章 字符串:3.5.1 Trie
原创 2020-05-28 13:15:19 · 201 阅读 · 0 评论 -
UVa Problem 123 - Searching Quickly
// UVa Problem 123 - Searching Quickly // Verdict: Accepted// Submission Date: 2012-01-04// UVa Run Time: 0.016s//// 版权所有(C)2012,邱秋。metaphysis # yeah dot net//// [解题方法]// 简单的字符串处理和排序题。原创 2012-01-04 20:29:49 · 3721 阅读 · 1 评论 -
UVa Problem 10132 File Fragmentation (文件碎片)
// File Fragmentation (文件碎片)// PC/UVa IDs: 110306/10132, Popularity: C, Success rate: average Level: 2// Verdict: Accepted// Submission D原创 2011-05-20 20:41:00 · 2500 阅读 · 0 评论 -
UVa Problem 10082 WERTYU (WERTYU 键盘)
// WERTYU (WERTYU 键盘)// PC/UVa IDs: 110301/10082, Popularity: A, Success rate: high Level: 1// Verdict: Accepted// Submission Date: 2011-原创 2011-05-19 15:46:00 · 3316 阅读 · 0 评论 -
UVa Problem 848 Fmt (Fmt 程序)
// Fmt (Fmt 程序)// PC/UVa IDs: 110308/848, Popularity: C, Success rate: low Level: 2// Verdict: Accepted// Submission Date: 2011-05-22//原创 2011-05-22 23:53:00 · 2096 阅读 · 0 评论 -
UVa Problem 10188 Automated Judge Script (自动评测脚本)
// Automated Judge Script (自动评测脚本)// PC/UVa IDs: 110305/10188, Popularity: B, Success rate: average Level: 1// Verdict: Accepted// Submis原创 2011-05-19 15:54:00 · 2302 阅读 · 0 评论 -
UVa Problem 850 Crypt Kicker II (解密 II)
// Crypt Kicker II (解密 II)// PC/UVa IDs: 110304/850, Popularity: A, Success rate: average Level: 2// Verdict: Accepted// Submission Date:原创 2011-05-19 15:52:00 · 3412 阅读 · 0 评论 -
UVa Problem 10252 Common Permutation (公共排列)
// Common Permutation (公共排列)// PC/UVa IDs: 110303/10252, Popularity: A, Success rate: average Level: 1// Verdict: Accepted// Submission D原创 2011-05-19 15:51:00 · 4023 阅读 · 2 评论 -
UVa Problem 10010 Where’s Waldorf?(寻找单词)
// Where’s Waldorf? (序找单词)// PC/UVa IDs: 110302/10010, Popularity: B, Success rate: average Level: 2// Verdict: Accepted// Submission Dat原创 2011-05-19 15:49:00 · 2562 阅读 · 0 评论