[Java教程]求子串

0 2016-10-22 14:01:04

求子串

数据结构中对串的5种最小操作子集:串赋值,串比较,求串长,串连接,求子串,其他操作均可在该子集上实现数据结构中串的模式匹配

KPM模式匹配算法

基本的模式匹配算法//求字串subString 在串string中的位置

function subString(string, subString){ var i=0,j=0;

//当i或j超出范围退出 while(i

//当匹配不成功时,i由开始位置后移一位 i=i-j+1;j=0; } }

//如果是j超出范围则返回i-j,如果是i超出范围则表示未找到

if(j>=subString.length) return i-j; else return false;}

看的出来,每当匹配不成功时,i总是回朔本次匹配的开始位置

KPM,一种改进了的模式匹配算法,解决i回朔问题

这里引出了一个很重要的问题‘包含前缀’,

以subString='abcabcacab',为例。前缀串'abca'='abc[abca]cab'方括号中的字串的,如果在该字串之后c处匹配失败,只需要让前缀串的a与括号中的a对其,接着从匹配失败的c处继续匹配。

所以我们需要求出subString在j处匹配失败后,需要向回移动j-k+1的值

假设f(j)代表subString在j之前的包含前缀中最大的k,例如'abcabca'中,k-1=1,4,即最大k为5;f(8)=5

那么'abcabcacab'中,f(9)=f(8)+(subString[5]?==subString[8]),如果相等,则f(9)=6;如果不相等f(9)需要重新计算,因为subString[9-1]的c导致最大包含前缀不再是abca,而是一个已c结尾的包含前缀字串。实际上没有这样的字串;

blog.csdn.net/yukuninfoaxiom/article/details/6057736

blog.csdn.net/joylnwang/article/details/6778316/

http://www.rudy-yuan.net/archives/182/

www.webhek.com/misc/comparison-sort

编译原理词法分析器

NFA/DFA

本文网址:http://www.shaoqun.com/a/255410.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

0

java求子串_[Java教程]求子串相关推荐

  1. java小朋友猜拳_[Java教程]Java猜拳小游戏(剪刀、石头、布)

    [Java教程]Java猜拳小游戏(剪刀.石头.布) 0 2015-09-29 08:00:04 import java.util.Random;import java.util.Scanner;pu ...

  2. java星空屏幕_[Java教程]窗口设置_星空网

    窗口设置 2016-04-13 0 /** * 这个是GUI的事例程序: * */ package w160412.wang.main;import java.awt.Color; import ja ...

  3. java控制语句练习题_[Java初探实例篇02]__流程控制语句知识相关的实例练习

    本例就流程控制语句的应用方面,通过三个练习题来深入学习和巩固下学习的流程控制语句方面的知识,设计到,if条件判断语句,switch多分支语句,for循环语句及其嵌套多层使用,while循环语句. 练习 ...

  4. java取负数_[Java] 告别“CV 工程师”码出高效!(基础篇)

    作为一名资深的 CV 工程师,某天,当我再一次日常看见满屏的报错信息与键盘上已经磨的泛白的 Ctrl.C.V 这三个按键时,我顿悟了. 百度谷歌复制粘贴虽然很香,但是总是依靠前人种树,终会有一天失去乘 ...

  5. java 文本压缩_[Java基础]Java使用GZIP进行文本压缩

    import java.io.IOException; import java.util.zip.GZIPOutputStream; import org.apache.commons.io.outp ...

  6. java private 对象_[Java笔记]类的所有构造器都是private权限,就一定没有办法实例化它的对象了么?...

    笔者以前学过C++语言.众所周知,C++也是一门面向对象程序设计语言.还记得当时在大学的时候,老师讲过这样的话:类的构造函数不应该设置成private权限,这样的话还怎么去实例化类的对象?当时也信以为 ...

  7. java resources 目录_[Java] 在 jar 文件中读取 resources 目录下的文件

    注意两点: 1. 将资源目录添加到 build path,确保该目录下的文件被拷贝到 jar 文件中. 2. jar 内部的东西,可以当作 stream 来读取,但不应该当作 file 来读取. 例子 ...

  8. java斗地主发牌_[Java源码]扑克牌——斗地主发牌实现

    --------------------------------------- --------------------------------------- ----------一个扑克牌核心和简单 ...

  9. 对抽象函数求导_抽象函数的求导方法怎么?

    2005-10-31 什么是洛必达法则,用它求极限就是求导吗? 我们知道,在求极限时,常会遇到两个无穷小之比的极限或两个无穷大之比的极限.这些极限有的存在,有的不存在.通常称这类极限为"未定 ...

最新文章

  1. php开发mvc教程,php开发一个简单的MVC
  2. 惨一个字!Windows 10 October 2018 Update市占率太低
  3. java web面试_超实用的Java web面试题
  4. 不带缓存的I/O和标准(带缓存的)I/O
  5. 关于maven项install时报找不到符号的错误
  6. STM32CubeMX:中断函数例题:2021-08-03
  7. unity 打开项目路径无效_怎么打开已有的unity工程文件?如何打开一个已有的unity3d游戏工程啊?...
  8. 用友摩天获“2021最受欢迎企业数智化学习认证社区”殊荣
  9. 安卓日历插件 calendarview使用
  10. WEB2.0下的金蛋 什么样的商业模式会成功?
  11. 邮箱个性签名html模板,邮件个性签名大全_邮件的经典个性签名模板
  12. CM系统应用源码分析与rom定制
  13. 微信客服消息时间限制
  14. linux sftp 命令_Linux Sftp命令示例
  15. (17)雅思屠鸭第十七天:小作文完整攻略
  16. 图——图的深度优先遍历
  17. 抓取猫眼电影实时数据
  18. 教你用Python将图片转化为字符画!附源代码
  19. mac 下配置安装rz,sz
  20. 春暖花开index.php,【星月.大地】春暖花开时(散文)

热门文章

  1. 工作11年,然后归零
  2. java求线性回归置信区间,线性回归分析详解9:总体回归、置信度、置信区间及其计算方法...
  3. 面向数据编程 Data-Oriented Programming [11]
  4. mysql:解决数据库名字的格式——不能用横杠-
  5. 字符字符串的输入输出
  6. 【pngquant】使用Python压缩图片,降低网页加载时间
  7. 计算机基础知识一级考试题库,office一级考试选择题计算机基础知识(附答案)
  8. windows cmd 查看文件目录树
  9. ICLR 2023 超高分工作|把图片视为点集,简单聚类算法实现强悍视觉架构
  10. 在Linux VSCode中编写调试C++解决ipch文件过大问题