DS与算法
viMory
这个作者很懒,什么都没留下…
展开
-
如何利用正则表达式来处理字符串
正则表达式(regular expression记为RE)常用于文本检索和计算生物学中,它可以表示比单字符串、字符串集合、扩展字符串更复杂的搜索模式。正则表达式有三种最基本的运算:并、连接、闭包。分别记为“|”、“.”、“*”。如果RE1 和RE2 都是正则表达式,则(RE1 . RE2)、(RE1 | RE2)、(RE1 *)也都是正则表达式。如图1是利用正则表达式知识来处理字符串的经典方法...2008-05-30 09:55:57 · 629 阅读 · 0 评论 -
图解BM算法
BM算法是Boyer-Moore算法的简称,由Boyer 和Moore提出。被认为在一般的应用中为最有效的字符串匹配算法。 举例:在文本串S="A simple example"中搜索模式串T="example",BM算法是从后向前搜索首先比较S[6]和T[6],如下图: 匹配失败,T下标加1,继续匹配,如下图: 这次匹配成功四个,在S[3]和T...2008-06-03 11:18:06 · 652 阅读 · 0 评论 -
关于字符串的交迭与边界问题算法的一些回顾
又见字符串算法,看到那个交迭和边界的算法,真是看到脑壳痛。由于原文资料还是英文的,上周就在那翻译了,还没仔细看过,也不知道翻译的对不对,今晚拿着打印版的跑到教室坐了会,假日人少但很清静!整个晚上光看交迭和边界问题了。文章算法给出来了,不至于看不懂吧,但实际上就是看不懂。经过一步步的画啊,终于有了些眉目。抓紧机会好好整理再回顾下: ①:什么叫两个字符串x和y的交迭?很简单...2008-05-03 00:24:16 · 289 阅读 · 0 评论 -
"因祸得福" ---字符串交迭和边界问题的继续回顾
昨天那个border算法我说好像在哪里见过,原来就是KMP算法中的精髓部分。KMP算法我以前是看过的,现在足以表明我看的是多么肤潜,或者说根本就没弄懂他的意思。以前对KMP算法的next[]函数引入是佩服的五体投地,四脚朝天,但对next[]函数并没有更深入的了解,想起昨天从字符串的边界问题引出了KMP算法,现在方知,KMP算法归根到底也是字符串的交迭和边界问题啊。岂非因祸得福!...2008-05-03 13:52:12 · 174 阅读 · 0 评论 -
关于资料上子串距离的一种尝试性纠正
资料上的子串距离定义如下: 设u和v分别为长度是n,m的字,p是它们的最大公共子串的长度,u和v的子串距离定义为dS(u, v) = n+m−2p。 先来看海明距离,他是计算同一位置的不同元素的个数,很明显左图的海明距离为3.但对于子串距离,如按定义去解那就是 8+8-2*5=6,公共子串长度为5嘛,所以子串距离应为...2008-05-06 19:29:43 · 115 阅读 · 0 评论 -
本原字和共轭字以及Lyndon字的引述
这三种字关系密切,介绍之前,先看看几个概念: ①:字母表A:符号的有穷非空集合。如 A={a,b,...z}。 ②:串集合A*:也就是字母表A上所有字的集合。记为A*,如:{0,1}*={Г,0,1,00,01,10,11,000,....} 其中Г表示空串,我们把非空串的集合记为A^+。 本原字的数学严格定义: ...2008-05-07 11:27:59 · 198 阅读 · 0 评论 -
Pennywise游戏---James Ernest设计
玩家:2-6目标:成为拥有任意硬币的最后一个玩家。设置:每位玩家开始时都有4枚一分硬币、3枚五分硬币、2枚一角硬币、1枚二角五分硬币。在游戏开始时罐中是空的。玩法:轮到你时,把你的其中一枚硬币放到罐中。然后,你可以从罐中取出零钱,最多可以取出比你玩游戏的硬币价值少一分钱的零钱。例如,如果你放入一枚一角硬币,则最多可以取出价值9分钱的硬币。提示:必须只处理两位玩家,创建一个CoinSet类,...2008-05-07 12:45:31 · 292 阅读 · 0 评论 -
如何利用有穷自动机来处理字符串
有穷自动机可分成确定型的有穷自动机和非确定型的有穷自动机。确定型自动机简称DFA,它包含一个有穷的状态集合Q,一个有穷的输入符号集合∑,一个转移函数T,一个初始状态q0 ,一个终结状态或接受状态的集合F。通常可用一个五元组来表示,如: A={Q,∑,T,q0 ,F}非确定型自动机简称NFA,和DFA一样,也可用这个五元组表示,和DFA唯一的区别就是NFA的转移函数T返回值的类型不同,...2008-05-23 13:15:57 · 306 阅读 · 0 评论