重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁!
查看《购买须知》>>>
找答案首页 > 全部分类 > 求职面试
搜题
网友您好, 请在下方输入框内输入要搜索的题目:
搜题
题目内容 (请给出正确答案)
[单选题]

模式串 t=‘abcaabbcabcaabdab',该模式串的next函数值为()。

A.0 1 1 1 2 2 1 1 1 2 3 4 5 6 7 1 2

B.0 1 1 0 2 1 3 1 0 1 1 0 2 1 7 0 1

C.0 1 1 1 0 0 1 3 1 0 1 1 0 0 7 0 1

D.0 1 1 1 2 2 3 1 1 2 3 4 5 6 7 1 2

查看答案
更多“模式串 t=‘abcaabbcabcaabdab',该模式串的next函数值为()。”相关的问题

第1题

设目标串S=“abcaabbcaaabababaabca”,模式串T=“babab”。...
设目标串S=“abcaabbcaaabababaabca”,模式串T=“babab”。计算模式串T的next函数值为
点击查看答案

第2题

已知模式串t=‘abcaabbabcab’写出用KMP法求得的每个字符对应的next和nextval函数值。

点击查看答案

第3题

令s=‘aaab’,t=‘abcabaa’,u=‘abcaabbabcabaacbacba’,分别求出它们的next值。

点击查看答案

第4题

执行下面的命令后,函数EOF()的值一定为.T.的是( )。

A.REPLACE基本工资WITH基本工资+200

B.LIST NEXT 10

C.SUM基本工资T0 SS WHILE性别=”女”

D.DISPLAY FOR基本工资>800

点击查看答案

第5题

KMP算法通过模式串的前缀函数,较好地利用了搜索过程中的部分匹配信息,从而提高了效率.然而在某些情况下,还可以更好地利用部分匹配信息.例如,考察图9-2中,KMP算法对主串aabaaaab和模式串aaaab的搜索过程.

在图9-2(a)中匹配失败后,按前缀函数指示继续作了图(b)~(d)的比较后,最后在图(e)找到一个匹配.事实上,图(b)~(d)的比较都是多余的.因为模式串在位置0、1、2处的字符和位置3处的字符都相等,因此不需要再和主串中位置3处的字符比较,而可以将模式一次向右滑动4个字符,直接进入图(e)的比较.这就是说,在KMP算法中遇到p[j+1]≠t[i],且p[j+1]=p[next[j]+1]时,可一次向右滑动j-next[next[j]]个字符,而不是j-next[j]个字符.根据此观察,设计一个改进的前缀函数,使得遇到上述特殊情况时效率更高.

点击查看答案

第6题

试题四(共15分)

阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。

【说明】

模式匹配是指给定主串t和子串s,在主串t中寻找子串s的过程,其中s称为模式。

如果匹配成功,返回s在t中的位置,否则返回-1 。

KMP算法用next数组对匹配过程进行了优化。KMP算法的伪代码描述如下:

1.在串t和串s中,分别设比较的起始下标i=J=O

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>

nclude <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< ils){/*还有字符*/

if(j=-1l ls[i]=s[j]){/*匹配*/

j++;

i++;

if( s[i]一s[jl)

next [i]- next[j];

else

Next[i]=j;

}

else

J= next[j];

}

}

int kmp( int *next, char *t ,char *s, int.lt, int Is )

{

inti= 0,j =0 ;

while (i<lt && ( 1 ) {

if( j=-1 II 2_) {

i++ ;

j ++ ;

} else

(3) :

}

if (j>= ls)

Retum (4)

else .

retum-1;

【问题1】(8分)

根据题干说明,填充C代码中的空(1)~(4).

【问题2】(2分)

根据题干说明和C代码,分析出kmp算法的时间复杂度为 (5)(主串和子的长度分别为It和Is,用O符号表示)。

【问题3】(5分)

根据C代码,字符串“BBABBCAC”的next数组元素值为 (6) (直接写素值,之间用逗号隔开)。若主串为“AABBCBBABBCACCD”,子串为“BBABBCAC则函数Kmp的返回值是 (7)

点击查看答案

第7题

阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。

[说明]

若S和T是用结点大小为1的单链表存储的两个串,试设计一个算法找出S中第一个不在T中出现的字符。查找过程是这样的,取S中的一个字符(结点),然后和T中所有的字符一一比较,直到比完仍没有相同的字符时,查找过程结束,否则再取S中下一个字符,重新进行上述过程。

[函数]

typedef struct node {

char data;

struct node *next;

}LinkStrNode; //结点类型

typedef LinkStrNode *LinkString; //LinkString 为链串类型

LifikString S; //S 是链串的头指针

char SearchNoin ( LinkString S, LinkString T )

{//查找不在T中出现的字符

LinkStrNode *p, *q;

(1);

q=T;

while ((2))

{//取S中结点字符

while((3))//进行字符比较

q=q->next;

if(q==NULL) return (4);//找到并返回字符值

q=T;//指针恢复串T的开始结点

((5));

}

printf("there's no such character.");

return NULL:

}

点击查看答案

第8题

听力原文:How much is the ticket to New York, please?

(3)

A.Fourteen dollars.

B.It's next to the station.

C.Sorry, I have no money.

D.Sorry, I don't know the way.

点击查看答案
下载上学吧APP
客服
TOP
重置密码
账号:
旧密码:
新密码:
确认密码:
确认修改
购买搜题卡查看答案
购买前请仔细阅读《购买须知》
请选择支付方式
微信支付
支付宝支付
选择优惠券
优惠券
请选择
点击支付即表示你同意并接受《服务协议》《购买须知》
立即支付
搜题卡使用说明

1. 搜题次数扣减规则:

功能 扣减规则
基础费
(查看答案)
加收费
(AI功能)
文字搜题、查看答案 1/每题 0/每次
语音搜题、查看答案 1/每题 2/每次
单题拍照识别、查看答案 1/每题 2/每次
整页拍照识别、查看答案 1/每题 5/每次

备注:网站、APP、小程序均支持文字搜题、查看答案;语音搜题、单题拍照识别、整页拍照识别仅APP、小程序支持。

2. 使用语音搜索、拍照搜索等AI功能需安装APP(或打开微信小程序)。

3. 搜题卡过期将作废,不支持退款,请在有效期内使用完毕。

请使用微信扫码支付(元)
订单号:
遇到问题请联系在线客服
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系在线客服
恭喜您,购买搜题卡成功 系统为您生成的账号密码如下:
重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁。
发送账号到微信 保存账号查看答案
怕账号密码记不住?建议关注微信公众号绑定微信,开通微信扫码登录功能
警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

- 微信扫码关注上学吧 -
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
- 微信扫码关注上学吧 -
请用微信扫码测试
选择优惠券
确认选择
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,如果您知道正确答案,欢迎您来纠错

上学吧找答案