蓝桥杯2017第八届C语言B组省赛习题题解——习题F.最大公共子串*

每日刷题(二十三)

蓝桥杯第八届C语言B组省赛习题

习题F:最大公共子串

在这里插入图片描述
在这里插入图片描述
这里题目已经说明用矩阵法,定义了a[N][N]。这里有个符号常量N为256。很多人可能会对memset函数有一些困惑,当然,我们可以猜出它大致是把二维数组a初始化为0。
在这里插入图片描述
查了一下,以后要是要对数组清零可以使用memset(),他通常在<string.h>或头文件中。
接下来看有两层循环,第一层循环是以s1的长度遍历的,第二层循环是以s2的长度遍历,但它们的开头都是从1开始而不是0,但if语句判断里面又是从i-1和j-1判断的,接下来就是要填的部分。后来又有一个判断语句,max初始化是0,max的值会被改变,返回值又是max,输出的必须是最大公共字符串长度,那么我们基本上可以猜测,
在这里插入图片描述
这个题目还是很有意思的,很值得细品,这也是一种解决最大公共子串的方法
所以填空部分就是

a[i - 1][j - 1] + 1

如果喜欢我的文章,请记得三连哦,点赞关注转发,欢迎各位志同道合的IT友人在评论区讨论交流,感谢您的支持,下期更精彩!!!

发布了40 篇原创文章 · 获赞 7 · 访问量 3112

猜你喜欢

转载自blog.csdn.net/qq_44631615/article/details/104660930