字符串
YancyKahn
这个作者很懒,什么都没留下…
展开
-
【Leetcode每日一题】 1370. 上升下降字符串(水题)
Leetcode 每日一题题目链接: 1370. 上升下降字符串难度: 简单解题思路: 将字符串转化成字典,并对key关键字进行排序。然后从小到大,从大到小进行拼接。题解:class Solution: def sortString(self, s: str) -> str: # 记录每个字符出现的次数 support = {} for example in s: support[example] = support.原创 2020-11-25 11:49:13 · 369 阅读 · 0 评论 -
stringstream类型转换
c++标准库中的 < sstream >提供了类型转化的功能.<sstream>中定义了三个类: 1. istringstream 流输入 2. ostringstream 流输出 3. stringstream 流输入输出在类型转换时使用<ss原创 2017-11-18 14:20:32 · 991 阅读 · 1 评论 -
扩展KMP(模式串与文本串的最长公共前缀)
const int maxn=100010; //字符串长度最大值 int next[maxn],ex[maxn]; //ex数组即为extend数组 //预处理计算next数组 void GETNEXT(char *str) { int i=0,j,po,len=strlen(str); next[0]=len;//初始化next[0] wh转载 2017-11-13 19:52:55 · 562 阅读 · 0 评论 -
Manacher(处理最长回文的类似问题)
1. 将字符串中的数变为奇数2. p[i]表示最长回文长度左右扩张的长度#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 110005;char target[maxn];char target01[maxn<<1]原创 2017-11-09 20:38:42 · 306 阅读 · 0 评论 -
KMP算法模板(字符串匹配问题)
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 1000005;const int maxm = 10005;struct K_M_P{ int target[maxn]; int pattern[ma原创 2017-11-01 15:50:04 · 326 阅读 · 0 评论 -
HUD2222(ac自动机)
标准ac自动机模板题题目链接:https://vjudge.net/problem/HDU-2222#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <queue>using namespace std;//ac_automaton algorithmconst int原创 2017-11-14 18:12:52 · 419 阅读 · 0 评论 -
AC自动机模板(多模式匹配)
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <queue>using namespace std;//ac_automaton algorithmconst int MAXNODE = 1000005;const int SIGMA_SIZE = 26;//构造t原创 2017-11-14 17:36:00 · 393 阅读 · 0 评论 -
HDU-1711(Number Sequence)
HDU-1711#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int maxn = 1000005;const int maxm = 10005;int Next[maxm];int target[maxn];int pattern[maxm];void getNext(i原创 2018-01-27 14:56:08 · 322 阅读 · 0 评论 -
KMP模板
void getNext(string pattern, int len){ int k = -1; next[0] = -1; for(int i = 1; i < len; ++i) { while(k > -1 && pattern[k + 1] != pattern[i]) k = next[k]; if(pattern[k +原创 2018-02-12 01:06:08 · 422 阅读 · 0 评论