可学答题网 > 问答 > 数据结构与算法题库,初级程序员题库
目录: 标题| 题干| 答案| 搜索| 相关
问题

阅读以下说明和流程图,将应填入____处的字句写在答题纸的对应栏内。下面的


阅读以下说明和流程图,将应填入____处的字句写在答题纸的对应栏内。下面的流程图旨在统计指定关键词在某一篇文章中出现的次数。设这篇文章由字符A(0),…,A(n-1)依次组成,指定关键词由字符B(0),…,B(m-1)依次组成,其中n>m≥1。注意,关键词的各次出现不允许有交叉重叠。例如,在"aaaa"中只出现两次"aa"。该流程图采用的算法是:在字符串A中,从左到右寻找与字符串B相匹配的并且没有交叉重叠的所有子串。流程图8-17中,i为字符串A中当前正在进行比较的动态子串首字符的下标,j为字符串B的下标,k为指定关键词出现的次数。

参考答案
参考解析:

在文章中查找某关键词出现的次数是经常碰到的问题。流程图最终输出的计算结果k就是文章字符串A中出现关键字符串B的次数。显然,流程图开始时应将k赋值0,以后每找到一处出现该关键词,就执行增1操作k=k+1。因此(1)处应填0→k。字符串A和字符串B的下标都是从0开始的。所以在流程图执行的开始处,需要给它们赋值0,接下来执行的第一个小循环就是判断A(i),A(i+1),…,A(i+j-1)是否完全等于B(0),B(1),…,B(m-1),其循环变量j=0,1,…,m-1。只要发现其中对应的字符有一个不相等时,该小循环就结束,不必再继续执行该循环。因此,该循环中继续执行的判断条件应该是A(i+j)=B(j)且j

分类:数据结构与算法题库,初级程序员题库
相关推荐

1、阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。

阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。说明:某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如图10.43所示。现在采用组合(Composition...

2、阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。

阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。说明:某大型商场内安装了多个简易的纸巾售卖机,自动售出2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾...

3、阅读下列说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。说明:设某

阅读下列说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。说明:设某一机器由n个部件组成,每一个部件都可以从m个不同的供应商处购得。供应商j供应的部件i具有重量Wij...

4、阅读以下说明和C++代码,将应填入____处的语句或语句成分写在答题纸的对

阅读以下说明和C++代码,将应填入____处的语句或语句成分写在答题纸的对应栏内。某数据文件students.txt的内容为100名学生的学号和成绩,下面的程序将文件中的数据全部读入对象...

5、阅读以下说明和Java代码,将应填入____处的语句或语句成分写在答题纸的

阅读以下说明和Java代码,将应填入____处的语句或语句成分写在答题纸的对应栏内。【说明】某数据文件students.txt的内容为100名学生的学号和成绩,下面的程序将文件中的数据全部...

6、阅读以下说明和C++代码,将应填入_____处的字句写在答题纸的对应栏内。

阅读以下说明和C++代码,将应填入_____处的字句写在答题纸的对应栏内。【说明】现需要统计某企业员工的月平均工资,即该企业本月发给员工的工资总和除以员工数。假设企业本月发...