字符串相关算法.pptVIP

  • 5
  • 0
  • 约1.12万字
  • 约 100页
  • 2017-11-17 发布于河南
  • 举报
字符串相关算法

字符串相关算法 天津大学 2010.03 Trie树插入过程 令p指向root 对单词的每个字符 { 令t为该字符在字符集的位置; if (p-next[t] == NULL) { p - next[t] = 新节点; } p = p- next[t]; } p-flag = 1; Trie树查询过程 令p指向root 对新串的每个字符 { 令t为该字符在字符集的位置; if (p-next[t] == NULL) { return 0; } p = p- next[t]; } return 1; 说明 某字符在字符集中的位置即指在next[i]中的i应该是几,如在‘a’ ~‘z’小写字符集,即串中只出现小写英文字符,则t = 字符 – ‘a’ 使用时注意内存不要开爆,Trie一般情况为串多但每个串都比较短 把bool flag 改为int,可以统计重复的串 解法 原题更一般的讲就是:给定若干字典串,和一个串S,问用字典串组成S的方法数 令DP[i]表示组成串S前i位的方法数,令串S在Trie上查询,对每位如第i位从根开始匹配。若走到某位置k(串S的第k位)为单词结束,则DP[k] += DP[i] * 该位置结束的单词数 直到失配或k到串尾,则进行i+1位开始的计算 补充说明 实际上前缀指针的作用就是错位 使得匹配能够继续进行,C节点指向的节点加上各自的父

文档评论(0)

1亿VIP精品文档

相关文档