首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】 模式匹配是指给定主串t和子串s,在主串t中寻找子串s的过程,其中s称为模式。如果匹配成功,返回s在t中的位置,否则返回一1。 KMP算法用next数组对匹配过程进行了优化。K
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】 模式匹配是指给定主串t和子串s,在主串t中寻找子串s的过程,其中s称为模式。如果匹配成功,返回s在t中的位置,否则返回一1。 KMP算法用next数组对匹配过程进行了优化。K
admin
2017-11-28
45
问题
阅读下列说明和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=1或者t
=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:长度为1t和1s的字符串
next:next数组,长度为1s
(2)C程序
#include
#include
#include
/*求next[]的值*/
void get next(int*next,char*s,int is){
int i=0,j=一1;
next[0]=一1;/*初始化next[0]*/
while(i
if(j==一1‖s
=s[j]){/*匹配*/
j++
i++;
if(s
==s[j])
next
=next[j];
else
next
=j;
}
else
j=next[j];
}
}
int kmp(int*next,Char*t,char*s,int it,int is)
{
int i=0,j=0;
while(i
if(j=一1 ‖ (2) ){
i ++;
j++;
} else
(3) ,
}
if ( j>=ls)
return (4);
else
return一1;
}
根据题干说明,填充C代码中的空(1)~(4)。
选项
答案
(1)j<1s (2)t[i]=s[j] (3)j=next[j] (4)i-j+1
解析
本题考查算法设计与分析以及用C程序设计语言实现算法的能力。KMP算法是一个非常经典的模式匹配算法。其核心思想是核心思想:匹配过程中字符对不相等时,不需回溯主串,而是利用已经得到的部分匹配结果将模式向右滑动尽可能远的一段距离继续比较。滑动的距离由next数组给出。该算法提出之后,有一些改进的思想,使得next数组的计算有多种方式。本题干不需要考生考虑如何计算next数组,已经直接给出计算该数组的C代码。只需要根据已经计算的next数组进行模式匹配即可。
在C函数kmp中,while循环是判断串s和t是否还有字符,因此空(1)处应填写“j<1s”。根据题干描述,“如果j=-1或者t
=s[j],则将i和j分别加1”,则空(2)处填入“t
=s[j]”,空(3)处是“否则,将j向右滑动到next[j]的位置,即j=next[j]”的情况,因此填入“j=next[j]”。空(4)处要填返回值,此处应该是能找到模式串的情况,此时i是主串匹配完成后的位置,j是子串的长度,则匹配的起始位置为i一j+1(从1开始)。
转载请注明原文地址:https://kaotiyun.com/show/kKDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
请回答以下有关组网的问题1~3。【说明】某公司规模扩大,既要考虑保证目前土建装修的效果不被破坏,又要满足网络扩容和企业工作实际需求,同时还要保证投资不要过大,经过深入分析和研究对比,决定采用无线局域网组网来解决网络扩容的问题,网络拓扑结构如
认真阅读以下关于架构Apache安全服务器的技术说明,根据要求回答问题1至问题5。【说明】某些商务公司要求其网站的部分信息资源只对经过身份认证后的用户开放。因此在Linux+Apache架构Web服务器方案中,需利用mod-ss1模块给Apach
在交换机上可以配置虚拟局域网(VLAN),以下是部分配置清单。回答问题1、问题2、问题3、问题4和问题5,将解答填入对应栏内。>enablegconfigtEnterconfigurationcommands,oneperli
依据给出的可选设备进行选型,将(1)~(5)处空缺的设备名称填写在相应位置将(6)~(8)处空缺的介质填写在相应位置(所给介质可重复选择)。
阅读以下说明,回答问题1和问题2。【说明】某学校拟组建一个小型校园网,具体设计如下:1.设计要求。(1)终端用户包括:48个校园网普通用户;一个有24个多媒体用户的电子阅览室;一个有48个用户的多媒体教室(性能要求高于电子阅
ISDN分哪几层?NT2(网络终端连接设备)提供哪两种交换功能?如果ISDN收费是按每分钟计算,假如0.5元/分钟,采用ISDN基本速率接口下载1024k的文件需要付费多少?
阅读以下关于以快速原型模型开发网管软件系统时的项目进度管理的叙述,回答问题1至问题5。【说明】某网络程序软件开发公司承接某项网络工程的网络流量统计管理软件开发任务。在进行可行性研究时,需要估算完成项目的时间进度。由于该软件公司近年来已经为采用快速
请说出图9-1的拓扑结构名称与特点。根据IP地址与子网掩码,请判断它们是否属于同一个网段?如果不是,请说出他们分别属于哪个网段。
在如图1-23所示的网络拓扑结构图中,被路由协议可以使封装后的数据包通过互连网络进行中继传输,它由(1)使用。【供选择的答案】A.PCIB.RouterA和RouterBC.Internet网D.Rcrate
双绞线可以制作成直连线和交叉线两种形式,在图3-12所示的拓扑结构中,交换机与路由器(Router)相连的双绞线应制作成什么形式?利用IEEE802.1QVLAN中继协议进行不同VLAN之间数据的路由时,需要在原有的以太网帧中加入4字节的IEEE
随机试题
Faulkneroncesaidthat______isastoryof"lostinnocence,"whichprovesitselftobeanintensificationofthethemeofimp
普列姆昌德长篇小说《戈丹》的主人公何利是
初级产品和中间产品的消费市场是
急性胰腺炎的治疗原则为减轻腹痛、_______、_______。
债券市场价格越_______债券面值,期限越_________,则当期收益率就越偏离到期收益率。()[2015年9、12月真题]
数学认知不包含哪项内容?()
下列关于农业的说法正确的是:
下列最易致低钾血症的是
求下列极限:
Modernindustrialsocietygrantslittlestatustooldpeople.Infact,suchasocietyhasasystemofbuilt-inobsolescence.The
最新回复
(
0
)