字符串
天宇skyblue
这个作者很懒,什么都没留下…
展开
-
hdu2222 AC自动机
插入函数是忘记更新节点,找了好久好久!!#include #include #include #include #include using namespace std;#define MAXN 26#define MAXX 1000005int sum ;char arr[MAXX];struct node{ int num; char str;原创 2015-06-19 13:17:56 · 311 阅读 · 0 评论 -
字符串替换C++实现
题目:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路:给定了字符串,和字符串最大长度,替换空格为“%20”,找出所有空格,计算新的长度,然后用双指针法一个从str的末尾开始,一个从新str的末尾开始,直接在原str上替换即可。class Solution {public:...原创 2019-03-07 16:35:09 · 1302 阅读 · 0 评论 -
hdu5745 字符串匹配 多校2.12
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5744题目大意:给定字符串s,p。输出长度为|s|的二进制数,若p经过相邻元素变换后能否和s当前位置向后的|p|串一致,每个位置的元素只能变换一次思路:暴力判断,每个p只需要和s判断前后一个即可。。ps:不要用string!!!!!#include #include原创 2016-07-22 12:01:18 · 329 阅读 · 0 评论 -
HDU3746 KMP相同公共前缀和公共后缀的最大长度应用及KMP
题目大意:在字符串后面最少添加多少个字符可以实现两次循环。思路:前面有提到过字符串相同公共前缀和公共后缀的最大长度。他的求法和next求法类似,次数也用next数组命名。求得相同前缀和的后缀的最长长度后,进行判断。如果next[last] = 0,则说明这个字符在前面只出现了一次,必须在结尾加len个字符。若果next[last]刚好可以被字符创长度整除,说明前面已经构成了循环,所以添加0原创 2016-04-11 13:31:26 · 814 阅读 · 0 评论 -
hdu3068 Manacher模板
#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;//#pragma comment(linker, "/STACK:102400000,1024原创 2016-04-27 10:10:09 · 228 阅读 · 0 评论 -
hdu3336 KMP应用
题意:给一个字符串,输出包括从1到len长 字符串每个前缀出现的总个数 YY: 基本思想是 KMP + DP,主要看KMP kmp思想:对字符串进行预处理,记录与当前位置i后缀相同的“最近”位置,用next[i]记录, 保证 s[1 .. i] 中 s[i - next[i] + 1 .. i] 与 s[1 .. next[i]] 是相同转载 2016-04-10 17:21:00 · 303 阅读 · 0 评论 -
hdu1358 KMP循环节
#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#pragma comment(linker, "/STACK:102400000,102400原创 2016-04-13 20:52:18 · 280 阅读 · 0 评论 -
HDU1711 KMP
题目大意:模式串匹配问题,用KMP练练手,顺便学习一下。、这里来说一下我对KMP中NEXT数组的理解。NEXT数组是对模式串自身的一个最长公共前缀和后缀的一个匹配过程,比如字符串“abab” ,他的相同前缀和后缀的最大程度是模式串中各个子串 前缀后缀公共元素的最大长度a空空0abab0aba原创 2016-04-08 10:29:33 · 258 阅读 · 0 评论 -
CF 600C 贪心+字符串
题目大意:给定一个字符串s,可以任意改变其中某个位置的字母,可以改变字母顺序(不算改变),求改变最小使其变成回文串,输出回文串(字典序最小)思路,统计每个字母的数量,根据总长度去操作,简单题。#include #include #include #include #include #include #include #include #include #i原创 2015-12-16 17:16:22 · 318 阅读 · 0 评论 -
cf509e 数学+字符串
题目大意:给定一个字符串,求任意子串中元音字母I, E, A, O, U, Y所占比例之和。 要求 : 思路:咋一看很困难,细细一想就知道怎么作了。因为要求所有子串,所以枚举每个长度,求出当前长度的所有子串的元音字母所占比例,求和即为结果。接下来就是怎么求所有子串中元音字母个数以及所占比例了。因为当子串长度为i时,必然可以有好多个,simple(i)中分母值一定,分子值相加原创 2015-11-05 16:50:24 · 388 阅读 · 0 评论 -
hdu2896 AC自动机
ac自动机题目 , 和hdu2222差不多,不过这里的字符包含ASCII所有可见字符,所以在建立trie树是需要将数组开大,否则就会访问越界,又是纠结好久,又看了一遍题目才发现。#include #include #include #include #include using namespace std;#define MAXN 100#define MAXX 100100原创 2015-06-19 14:17:14 · 344 阅读 · 0 评论 -
c++实现大数相乘
思路:每次讲一个数的一位与另一个数相乘,相当于简便运算即99=90+9,每次后面补0即可,记得进位处理。#include<bits/stdc++.h>using namespace std;string mul(char s1, string s2){ string res = ""; int len = s2.size(); int pos = ...原创 2019-03-15 15:16:07 · 440 阅读 · 0 评论