字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K...
分类:
编程语言 时间:
2014-10-21 19:08:29
阅读次数:
198
内容:安装软件,创建仓库,配置apache提供http访问功能以及用户验证功能安装必要软件:yum install httpd mod_dav_svn subversion创建一个svn仓库:mkdir -p /srv/svn/svnadmin create /srv/svn/morris配置apa...
分类:
其他好文 时间:
2014-10-17 20:24:17
阅读次数:
189
本节介绍Knuth-Morris-Pratt字符串匹配算法(简称KMP算法)。该算法最主要是构造出模式串pat的前缀和后缀的最大相同字符串长度数组next,和前面介绍的《朴素字符串匹配算法》不同,朴素算法是当遇到不匹配字符时,向后移动一位继续匹配,而KMP算法是当遇到不匹配字符时,不是简单的向后移一位字符,而是根据前面已匹配的字符数和模式串前缀和后缀的最大相同字符串长度数组next的元素来确定向后移动的位数,所以KMP算法的时间复杂度比朴素算法的要少,并且是线性时间复杂度,即预处理时间复杂度是O(m),匹配...
分类:
其他好文 时间:
2014-10-09 16:36:14
阅读次数:
176
解决字符串匹配的算法包括朴素算法(Naive)、Rabin-Karp算法、有限自动机算法(Finite Automation)和 Knuth-Morris-Pratt 算法(即 KMP 算法)等,本文主要介绍 Naive 算法和 KMP 算法的基本原理和实现。
分类:
其他好文 时间:
2014-10-04 23:42:17
阅读次数:
569
把三个二叉树遍历的题放在一起了。递归写法太简单,就不再实现了,每题实现了两种非递归算法。一种是利用栈,时间和空间复杂度都是O(n)。另一种是借助线索二叉树,也叫Morris遍历,充分利用树中节点的空指针域。先序:Binary Tree Preorder TraversalGiven a binary...
分类:
其他好文 时间:
2014-10-03 23:07:55
阅读次数:
341
第一种方法是Morris Traversal
是O(n)时间复杂度,且不需要额外空间的方法。缺点是需要修改树。
通过将叶子节点的right指向其中序后继。
代码如下
vector inorderTraversal(TreeNode *root) {
vector res;
TreeNode * cur = root;
TreeNode...
分类:
其他好文 时间:
2014-09-27 22:46:50
阅读次数:
195
一、什么是KMP算法Knuth-Morris-Pratt字符串查找算法(常简称为 “KMP算法”)是在一个“主文本字符串”S内查找一个“词”W的出现,,以此避免对以前匹配过的字符重新检查。(在原串中匹配模式串)二、KMP演示http://staff.ustc.edu.cn/~ypb/jpkc/fla...
分类:
其他好文 时间:
2014-09-25 23:51:08
阅读次数:
273
转载地址:http://www.w3cplus.com/css3/adapting-your-webkit-optimized-site-for-internet-explorer-10.html特别声明:此篇文章由David根据Charles Morris的英文文章原名《Adapting your...
分类:
Web程序 时间:
2014-09-22 12:22:22
阅读次数:
314
在1988年,互联网中继聊天(IRC)首次被部署,从而为今天使用的实时聊天和即时消息程序开了先河。
1988:第一次重大的、恶意的基于互联网的攻击
第一个主要的互联网蠕虫是1988年发行的。它被称为“莫里斯蠕虫”,作者是Robert Tappan Morris,导致了大部分地区的互联网的中断。
1989:美国在线(AOL)诞生了
当苹果在1989年推出AppleLink程序后,该项目被重新命名,美国在线(AOL)就诞生了。美国在线,今天仍然存在,后来使得互联网在普通用户之间受到了欢迎。
1989:...
分类:
其他好文 时间:
2014-09-19 10:15:05
阅读次数:
328
O(n)时间,O(1)空间对二叉树进行前序、中序、后序遍历。详细讲解看参考。public class Solution { public static void morrisPreorder(TreeNode root) { TreeNode cur = root; ...
分类:
其他好文 时间:
2014-09-09 22:58:39
阅读次数:
425