当前位置: 首页 > news >正文

交投建设集团网站有哪些做ppt的网站有哪些

交投建设集团网站,有哪些做ppt的网站有哪些,商城网站建设源码,一个超链接 多个网站4.1串 4.1.1串的定义 串(String)——零个或多个任意字符组成的有限序列 S"a1 a2...an"串的定义——几个术语 子串:串中任意个连续字符组成的子序列称为该串的子串 例如,“abcde”的子串有: “ ”、“a”、…

4.1串

4.1.1串的定义

串(String)——零个或多个任意字符组成的有限序列

S="a1 a2...an"

串的定义——几个术语

  • 子串:串中任意个连续字符组成的子序列称为该串的子串

    例如,“abcde”的子串有:

    “ ”、“a”、“ab”、“abc”、“abcd” 和 “abcde”等

    真子串是指不包含自身的所有子串。

  • 主串:包含子串的串相应地称为主串。

  • 字符位置:字符在序列中的序号为该字符在串中的位置。

  • 子串位置子串第一个字符在主串中的位置。

  • 空格串:由一个或多个空格组成的串,与空串不同

串相等:当且仅当两个串的长度相等并且各个对应位置上的字符都相同时,这两个串才是相等的。

如:“abcd” ≠ “abc”

​ “abcd” ≠ “abcde”

所有的空串是相等的。

4.1.2串的类型定义、存储结构及其运算

串中元素逻辑关系与线性表的相同,串可以采用与线性表相同的存储结构。

串的顺序存储结构

#define MAXSIZE 255
typedef struct {char ch[MAXSIZE + 1];//存储串的一维数组int length;//串的当前长度
}SString;

串的链式存储结构

可以将多个字符存放在一个结点中,以克服其缺点。

#define CHUNKSIZE 80//块的大小可由用户定义
typedef struct Chunk {char ch[CHUNKSIZE];struct Chunk* next;
}Chunk;
typedef struct {Chunk* head, * tail;//串的头指针和尾指针int curlen;//串的当前长度
}LString; //字符串的块链结构

4.1.3串的模式匹配算法

算法目的:

  • 确定主串中所含子串模式串第一次出现的位置(定位)。

算法应用:

  • 搜索引擎、拼写检查、语言翻译、数据压缩

算法种类:

  • BF算法(暴力破解法)
  • KMP算法
1、BF算法(重点)

Brute-Force简称为BF算法,亦称为简单匹配算法。采用穷举法的思路。

S: a a a a b c d 主串:正文串

T: a b c 子串:模式

算法思路:是从S的每一个字符开始依次与T的字符进行匹配。

匹配失败:i = i - j + 2 (回溯) j=1(从头开始)

匹配成功:i - t.length

index(S,T,pos)

  • 将主串的第pos个字符和模式串的第一个字符比较
    • 若相等,继续逐个比较后续字符;
    • 若不等,从主串的下一字符起,重新与模式串的第一个字符比较。
  • 直到主串的一个连续子串字符序列与模式串相等。返回值为S中与T匹配的子序列第一个字符的序号,即匹配成功。
  • 否则,匹配失败,返回值0。
int index_BF(SString S, SString T,int pos) {int i = pos, j = 1;while (i <= S.length && j <= T.length) {if (S.ch[i] == T.ch[j]) {++i;++j;//主串和子串依次匹配下一个字符}else {//主串、子串指针回溯重新开始下一次匹配i = i - j + 2;j = 1;}}if (j >= T.length) return i - T.length;//返回匹配的第一个字符的下标else return 0;//模式匹配不成功
}
2、KMP算法

该算法较BF算法有较大改进,从而使算法效率有了某种程度的提高。

利用已经部分匹配的结果而加快模式串的滑动速度。且主串S的指针i不必回溯。

为此,定义next[j]函数,表明当模式中第 j 个字符与主串中相应字符 ”失配“ 时,在模式中需重新和主串中的该字符进行比较的字符的位置,

KMP算法中next数组及nextval数组的计算(应付考试用)_c1er的博客-CSDN博客_nextval数组

j1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
模式串a b c a a b b c a b c a a b d a b
next[j]0 1 1 1 2 2 3 1 1 2 3 4 5 6 7 1 2
void get_next(SString T, int& next[]) {int i = 1;next[1] = 0;int j = 0;while (i < T.length) {if (j == 0 || T.ch[i] == T.ch[j]) {++i;++j;next[i] = j;}else j = next[j];}
}
int index_KMP(SString S, SString T, int pos) {int i = pos;int j = 1;while (i < S.length && j < T.length) {if (j == 0 || S.ch[i] == T.ch[j]) {++i;++j;}else j = get_next[j];//i不变,j后退}if (j > T.length) return i - T.length;//匹配成功else return 0;//返回不匹配标志
}

http://www.yayakq.cn/news/794853/

相关文章:

  • 如何做网站服务网站开发尾款如何做账
  • vps网站搬家单页面竞价网站
  • 信丰网站建设微网站建设难不难
  • 做蛋糕有哪些网站建站公司费用
  • 郑州小学班级网站建设中国发达国家
  • 帮忙做简历的网站跨境电商开店
  • 梵克雅宝为什么那么贵seo搜外
  • 网站关键词选取的步骤和方法桥梁建设网站在哪里可以投稿
  • 浙江邮电建设工程有限公司网站长春网站制作报价
  • 铁岭公司做网站宁夏住房和城乡建设厅网站办事窗口
  • 网站系统建设需要什么资质吗文化墙 北京广告公司
  • 网站附件下载表格怎么做网站建设 联系我们
  • 百度网站建设电话销售话术全国网页制作大赛
  • 专门做win7的网站东莞网络营销策划
  • 公司网站建设及推广django wordpress
  • 建设分销网站网页制作与设计简称
  • 游戏网站哪个好行业网站建设优化案例
  • 上海市建设工程质监站网站活动推广方式
  • 计算机应用技术网站开发基础知识百度云虚拟主机搭建wordpress
  • 企业网站推广 知乎吴桥网站建设公司
  • 做淘宝客网站需要什么要求吗天津企业网站建设公司
  • 做网站前端实战视频wordpress透明化插件
  • 网站建设广告做销售网站的好做么
  • 上传PDF到wordpress网站自做网站的步骤
  • 公司网站建设小知识北京经济技术开发区建设局网站
  • 网站建设费用差异大国内最好的少儿编程机构排名
  • 免费的网站发布中企动力登陆平台
  • 11网站建设waocc郑州抖音seo
  • 秦皇岛网站推广排名中国视觉设计网
  • python网站开发环境手机视频播放器app哪个最好用