
扫码购买正式版题库
- 海量题库
- 全真模拟
- 专项训练
- 预测试题
- 押题密卷
- 错题强化

阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】 模式匹配是指给定主串t和子串s,在主串t中寻找子串s的过程,其中s称为模式。如果匹配成功,返回s在t中的位置,否则返回-1 。 KMP算法用next数组对匹配过程进行了优化。KMP算法的伪代码描述如下: 1.在串t和串s中,分别设比较的起始下标i=j=0。 2.如果串t和串s都还有字符,则循环执行下列操作: (1)如果j=-l或者t[i]=s[j],则将i和j分别加1,继续比较t和s的下一个字符; (2)否则,将j向右滑动到next[j]的位置,即j =next[j]。 3.如果s中所有字符均已比较完毕,则返回匹配的起始位置(从1开始);否则返回-1. 其中,next数组根据子串s求解。求解next数组的代码已由get_next函数给出。【C代码】 (1)常量和变量说明 t,s:长度为悯铂Is的字符串 next:next数组,长度为Is (2)C程序 #include <stdio.h> #include <stdlib.h> #include <string.h> /*求next[]的值*/ void get_next( int *next, char *s, int Is) { int i=0,j=-1; next[0]=-1;/*初始化next[0]*/ while(i < ls){/*还有字符*/ if(j==-1l ls[i]==s[j]){/*匹配*/ j++; i++; if( s[i]==s[j]) next[i] = next[j]; else Next[i] = j; } else j = next[j]; } } int kmp( int *next, char *t ,char *s, int lt, int Is ) { Int i= 0,j =0 ; while (i < lt && (1) ){ if( j==-1 || (2) ){ i ++ ; j ++ ; } else (3) ; } if (j >= ls) return (4) ; else return -1; } 【问题1】(8分) 根据题干说明,填充C代码中的空(1)~(4). 【问题2】(2分) 根据题干说明和C代码,分析出kmp算法的时间复杂度为(5)(主串和子串的长度分别为It和Is,用O符号表示)。 【问题3】(5分) 根据C代码,字符串“BBABBCAC”的next数组元素值为(6)(直接写素值,之间用逗号隔开)。若主串为“AABBCBBABBCACCD”,子串为“BBABBCAC”,则函数Kmp的返回值是(7)。
问答题
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】 模式匹配是指给定主串t和子串s,在主串t中寻找子串s的过程,其中s称为模式。如果匹配成功,返回s在t中的位置,否则返回-1 。 KMP算法用next数组对匹配过程进行了优化。KMP算法的伪代码描述如下: 1.在串t和串s中,分别设比较的起始下标i=j=0。 2.如果串t和串s都还有字符,则循环执行下列操作: (1)如果j=-l或者t[i]=s[j],则将i和j分别加1,继续比较t和s的下一个字符; (2)否则,将j向右滑动到next[j]的位置,即j =next[j]。 3.如果s中所有字符均已比较完毕,则返回匹配的起始位置(从1开始);否则返回-1. 其中,next数组根据子串s求解。求解next数组的代码已由get_next函数给出。【C代码】 (1)常量和变量说明 t,s:长度为悯铂Is的字符串 next:next数组,长度为Is (2)C程序 #include <stdio.h> #include <stdlib.h> #include <string.h> /*求next[]的值*/ void get_next( int *next, char *s, int Is) { int i=0,j=-1; next[0]=-1;/*初始化next[0]*/ while(i < ls){/*还有字符*/ if(j==-1l ls[i]==s[j]){/*匹配*/ j++; i++; if( s[i]==s[j]) next[i] = next[j]; else Next[i] = j; } else j = next[j]; } } int kmp( int *next, char *t ,char *s, int lt, int Is ) { Int i= 0,j =0 ; while (i < lt && (1) ){ if( j==-1 || (2) ){ i ++ ; j ++ ; } else (3) ; } if (j >= ls) return (4) ; else return -1; } 【问题1】(8分) 根据题干说明,填充C代码中的空(1)~(4). 【问题2】(2分) 根据题干说明和C代码,分析出kmp算法的时间复杂度为(5)(主串和子串的长度分别为It和Is,用O符号表示)。 【问题3】(5分) 根据C代码,字符串“BBABBCAC”的next数组元素值为(6)(直接写素值,之间用逗号隔开)。若主串为“AABBCBBABBCACCD”,子串为“BBABBCAC”,则函数Kmp的返回值是(7)。
最新更新

热门题库
- 检验类题库
- 安全工程师题库
- 护理类题库
- 制冷与空调作业题库
- 中式面点师题库
- 安全员(三类人员)题库
- 焊工题库
- 汽车驾驶员题库
- 茶艺师题库
- 钳工题库
- 投资项目管理师题库
- 中式烹调师题库
- 中级安全工程师题库
- 安全员题库
- 公安政法干警题库
- 教师资格题库
- 高级会计题库
- 三支一扶题库
- 煤矿特种作业人员题库
- 国家公务员题库
- Q起重机械作业题库
- 演出经纪人题库
- 注册消防工程师题库
- 会计从业资格考试题库
- 安全管理人员题库
- P气瓶作业题库
- 基金从业资格题库
- 煤矿安全管理人员题库
- 公用设备工程师题库
- 金属非金属矿山安全作业题库
- 电工题库
- 软件水平考试题库
- 建筑特殊工种题库
- 审计师题库
- 岩土工程师题库
- 二级建造师题库
- 煤矿主要负责人题库
- 执业药师题库
- 健康管理师题库
- 焊工作业题库
- 施工员题库
- 设备监理师题库
- 研究生入学题库
- 冶金(有色)生产安全作业题库
- 二级注册建筑师题库
- 报检员题库
- 西式面点师题库
- 高处作业题库
- 卫生类题库
- 美容师题库
- 初级会计职称题库
- 营养师题库
- 成考(专升本)题库
- 注册环保工程师题库
- 试验检测师(含助理)题库
- 期货从业资格题库
- A特种设备安全管理题库
- 资料员题库
- 物业管理师题库
- 理财规划师题库
- 税务师题库
- 一级造价工程师题库
- 统计师题库
- 注册会计师题库
- 事业单位公开招聘题库
- 二级造价工程师题库
- T电梯作业题库
- 环境影响评价工程师题库
- 陕西省-社区专职工作人员招聘题库
- 材料员题库
- 注册结构工程师题库
- 土木工程师(水利水电)题库
- 同等学力申硕题库
- (高级)经济师题库
- D压力管道作业题库
- 招标师题库
- 标准员题库
- 车工题库
- 质量工程师题库
- 高校教师资格证题库
- 消防设施操作员题库
- 保育员题库
- 证劵从业(旧版)题库
- (中级)银行从业资格题库
- 机械员题库
- 土地登记代理人题库
- 一级建造师题库
- 心理咨询师题库
- 劳务员题库
- BIM工程师题库
- 证券投资顾问题库
- (初级)银行从业资格题库
- 证劵从业(新版)题库
- 汽车修理工题库
- 自考(医学)题库
- 注册测绘师题库
- 监管人员执法题库
- 资产评估师题库
- 咨询工程师题库
- 教师招聘题库
- 医师类题库
- 导游资格证题库
- 中级会计职称题库
- 注册城乡规划师题库
- (初级)经济师题库
- 主治类题库
- 理工类题库
- 卫生招聘考试题库
- 成考(高起点)题库
- 质量员题库
- 综合类题库
- 房地产估价师题库
- 电工作业题库
- 证券分析师题库
- 房地产经纪协理题库
- 省公务员-行测题库
- 军队文职人员招聘题库
- 房地产经纪人题库
- 中药学类题库
- 消防工程师题库
- 银行招聘考试题库
- 药学类题库
- 一级注册建筑师题库
- 煤矿班组长题库
- 投资银行业务-保荐代表人题库
- 报关员题库
- 特种设备焊接作业题库
- R压力容器作业题库
- N厂内专用机动车辆作业题库
- 烟花爆竹安全作业题库
- 企业人力资源管理师题库
- 会计从业题库
- 石油天然气安全作业题库
- 初级管理会计师题库
- 道路运输题库
- 注册电气工程师题库
- (中级)经济师题库
- G锅炉作业题库
- 健康管理师题库
- 法律职业资格(原司法考试)题库
- 社会工作者题库
- 危险化学品安全作业题库
- 监理工程师题库
- 主要负责人题库
- 国家电网招聘题库