字符 描述 例子 \ 将下一个字符标记为特殊字符、或原义字符、或向后引用、或八进制转义符。 \n 表示换行符、\d 匹配 [0-9] 的数字 ^ 匹配输入字符串的开始位置。 ^abc 表示匹配有 abc 开头的字符串 $ 匹配输入字符串的结束位置。 ^\d$ 表示匹配一个 [0-9] 的数字 * 匹 ...
分类:
其他好文 时间:
2020-01-20 11:15:06
阅读次数:
92
给定一个模式串S,以及一个模板串P,所有字符串中只包含大小写英文字母以及阿拉伯数字。 模板串P在模式串S中多次作为子串出现。 求出模板串P在模式串S中所有出现的位置的起始下标。 输入格式 第一行输入整数N,表示字符串P的长度。 第二行输入字符串P。 第三行输入整数M,表示字符串S的长度。 第四行输入 ...
分类:
编程语言 时间:
2020-01-20 09:23:46
阅读次数:
52
1. 几个经典算法题 字符串匹配 KMP算法(部分匹配表) 汉诺塔 分治算法 八皇后 回溯算法 马踏棋盘(骑士周游) 图的深度优先遍历算法(DFS) + 贪心算法优化 2. 数据结构和算法的关系 2.1 数据结构 解决存储问题 把现实生活中大量而复杂的问题以特定的数据类型(事物)和特定的存储结构(事 ...
分类:
其他好文 时间:
2020-01-19 16:33:43
阅读次数:
98
A[1~N]是否为B[1~M]的子串 next[1]=0; for(int i=2,j=0;i<=n;i++) { while(j>0&&a[i]!=a[j+1]) j=next[j]; if(a[i]==a[j+1]) j++; next[i]=j; } for(int i=1,j=0;i<=m; ...
分类:
其他好文 时间:
2020-01-18 21:34:14
阅读次数:
93
B 给定一个数列,每次操作选择一个偶数cc,把所有与cc相同的数都除以22,重复此类操作,直到所有数都变为奇数,问最小的操作次数。 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=2e ...
分类:
其他好文 时间:
2020-01-18 21:20:37
阅读次数:
84
import re it = re.finditer(r"<url>.*?</url>", '被筛选字符串') # 匹配url标签里的内容 # it = re.finditer(r"<command>.*?</command>", con) # 匹配标签里的内容,有换行符\n导致匹配失败 it2 = ...
分类:
编程语言 时间:
2020-01-18 00:48:48
阅读次数:
130
[Codeforces1137B]Camp Schedule(KMP) 题面 给出两个01串S和T,要求把S重新排列,使得T在S中出现的次数最多。求重新排列后的S 分析 用贪心的思想,尽量用T首尾相连的去凑出S。比如S="00111",T="101",那么我们可以把两个101拼在一起,相同的前后缀合 ...
分类:
其他好文 时间:
2020-01-17 23:02:46
阅读次数:
64
# 算法 || KMP # 步骤:①寻找前缀后缀最长公共元素长度 ②求next数组 ③根据next数组进行匹配 失配时,模式串向右移动的位数为:失配字符所在位置 - 失配字符对应的next 值,即j - next[j]。 递推求next数组。 1 public static int[] getNex ...
分类:
其他好文 时间:
2020-01-17 21:00:58
阅读次数:
85
实现一个小型搜索引擎 麻雀虽小,五脏俱全,跟大型搜索引擎相比,实现一个小型搜索引擎所用到的理论基础是相通的。 四个部分:搜集、分析、索引、查询 搜集 搜索引擎把整个互联网看作数据结构中的有向图,把每个页面看作一个顶点。 如果某个页面中包含另外一个页面的链接,那我们就在两个顶点之间连一条有向边。 可以 ...
分类:
编程语言 时间:
2020-01-17 13:16:51
阅读次数:
106
字符串处理专题 最长回文子序列 马拉车算法:O(n)的优秀算法,运用到了许多技巧。其中更新p数组的操作,运用到了分类讨论的思想。添加无关字符的操作,运用了化归。 https://www.jianshu.com/p/392172762e55 KMP算法 通过移动模式串除去指针回溯的弊端,实现的话,ne ...
分类:
编程语言 时间:
2020-01-16 23:41:24
阅读次数:
77