首页 > 其他分享 >字典树、kmp、exkmp

字典树、kmp、exkmp

时间:2022-11-25 08:34:05浏览次数:32  
标签:exkmp ch int pos st kmp now 字典

一、字符串相关知识

1、字串:连续区间的串
2、子序列:可以不连续的串,但是相对位置要保持一致
3、sprintf、sscanf(对char类型而言)

image

4、string
append(s, pos, n) // 将字符串 s 中,从 pos 开始的 n 个字符连接到当前字符串结尾。
replace(pos, n, s) //删除从 pos 开始的 n 个字符,然后在 pos 处插入串 s。
erase(pos, n) // 删除从 pos 开始的 n 个字符。
insert(pos, s) // 在 pos 位置插入字符串 s。

二、字典树(Trie树)

1、字典树应用
  • 查找字符串是否在字典树中出现
  • 维护异或极值
  • 维护异或和
  • 全局加一
2、字典树相关代码
const int N = 1e5 + 10;
struct node{
    int cnt[10];//表示每个儿子节重复次数
    int nx[10];//表示儿子节点的编号
}a[N];
int n, tot;
string st[N];
int tt;

void add(string st){//向字典树中添加字符串st
    int now = 0;
    for(int i = 0; i < st.size(); i++){
        int ch = st[i] - '0';
        if(!a[now].nx[ch]){
            a[now].nx[ch] = ++tot;
        }
        a[now].cnt[ch] ++;
        now = a[now].nx[ch];
    }
}

bool fid(string st){//判断字典树是否含有st字符串
    int now = 0; 
    int ch;
    for(int i = 0; i < st.size(); i++){
        ch = st[i] - '0';
        if(i == st.size() - 1){
            if(a[now].cnt[ch] >= 2) return false;
        }
        now = a[now].nx[ch];
    }
    return true;
}

标签:exkmp,ch,int,pos,st,kmp,now,字典
From: https://www.cnblogs.com/N-lim/p/16924074.html

相关文章

  • 字典树
    如上图根节点什么都不存其余结点存各自对应的一个字符从根节点往下遍历,遍历的字符组成了存储的字符串建树\(next[i][c]\)表示字符串与之对应的(\(s[j]=c\))下一......
  • 【Java】将枚举类转换为Redis字典缓存
     字典翻译框架实现看这篇:https://www.cnblogs.com/mindzone/p/16890632.html枚举的特性首先是枚举的一些特性:1、枚举实例直接在枚举类中声明2、重载构造器,......
  • kotlin类似javalist map所谓c shape 或ios那边的字典的遍历循环和创建以及泛型
    println("testlengthfunc:${getObjectLength("Howlongdoihave,please?")}");//geLength会出现会重写的情况,应该是自动倒入了某些系统的类导致的。varlist=li......
  • P8835 [传智杯 #3 决赛] 子串 ----- KMP算法、字符串匹配、字母大小写转换
    题目背景disangan233喜欢字符串,于是disangan333想让你找一些disangan233喜欢的串。题目描述在传智的开发课堂上,希望您开发一款文档处理软件。给定 TT 组询问......
  • 字典
    一.初始字典why:目前已经学习了容器型数据类型有list和tuple,list够用吗,有什么缺点   1.列表可以存储大量的数据类型,但是如果数据量大的话,他的查询速度比较慢   2.......
  • 212. 单词搜索 II(字典树/前缀树)
    给定一个 mxn 二维字符网格 board 和一个单词(字符串)列表 words, 返回所有二维网格上的单词 。单词必须按照字母顺序,通过 相邻的单元格 内的字母构成,其中“相邻......
  • Dict - 字典/hash
    哈希表结构定义typedefstructdictht{//哈希表数组dictEntry**table;//哈希表大小unsignedlongsize;//哈希表大小掩码,用于计算索引值/......
  • LC[386] 字典序排数
    https://leetcode.cn/problems/lexicographical-numbers/description/想像成一颗树的遍历AC代码:classSolution{public:vector<int>lexicalOrder(intn){......
  • KMP算法——数据结构与算法学习
    KMP算法算法的背景KMP是一个解决模式串在文本串是否出现过,如果出现过,最早出现的位置的经典算法核心思想KMP方法算法就利用之前判断过信息,通过一个next数组,保存模式......
  • 五分钟拿捏Python字典-Python3入门必备[字典详细操作]
    介绍在上一篇文章《​​Python3详细的数组基础操作-入门必备[列表的操作]​​》中讲解了Python的列表操作,这次接着唠唠Python数组中的字典,字典是Python的另一种可变容器......