-----字符串-----
stormjing7
这个作者很懒,什么都没留下…
展开
-
字符串子序列匹配问题
题目给你长度为n的字符串L,给你q个长度为0~m的字符串b,让你判断每一个b是否是字符串L的子序列。(L和b长度小于1e5)例题:Long Long Ago有三种做法。最后一种能过。一、最长公共子序列比赛时看到这题,因为刚看了dp,就想用LCS来做,求每一个b与字符串L的最长公共子序列的长度,如果等于b的长度,就能判断为对。但空间虽然可以用滚动数组优化,时间复杂度为O(n*m),过不了。...原创 2019-04-15 20:37:15 · 2595 阅读 · 1 评论 -
字符串最小字典序子序列
给出一个长度为n(1<n<10000)的只有小写字母的字符串,然后找出一个长度为m的最小字典子序列。做一个预处理,首先26个vector存储每个字母出现位置的下标,O(n)遍历字符串,push进每个字母出现下标,因为是顺序遍历,所以每个vector都是有序的。然后遍历m次这26个vector,找出第一个字母的出现位置,满足<=n-(m-i)+1,说明存在一个较小的字母符合筛选...原创 2019-04-15 20:47:39 · 5603 阅读 · 2 评论 -
ACM-ICPC 2018 沈阳赛区网络预赛 I. Lattice's basics in digital electronics(模拟,水题)
ACM-ICPC 2018 沈阳赛区网络预赛 I. Lattice’s basics in digital electronics题目给一个十六进制的数。先算出对应的二进制序列,再做奇偶校验(每9位一组,看最后一位与前 8 位 1 的数量奇偶关系来进行取舍)。最后根据题目给出的编码方式进行解码。分析题目太长了。。。。。读完发现是个大水题。完全按照题目里描述的步骤直接模拟即可。。注意题目...原创 2019-08-19 18:05:36 · 156 阅读 · 0 评论 -
KMP,Manacher算法
1.kmp算法首先是kmp算法,kmp是一种字符串匹配算法,假设有一个文本串S,和一个模式串P,现在要查找P在S中的位置,这时就可以用到kmp算法,他的大致思想就是利用模式串P本身的一些性质,来大大降低时间复杂度(O(n+m))。其中最重要的就是next数组。next数组本质就是求当前位置之前的串中最长公共前后缀中前缀的最后一个字符所占的位置。其中next数组本身也可以解决一些其他的问题。...原创 2019-08-17 09:40:02 · 227 阅读 · 0 评论