标题:最大公共子串
最大公共子串长度问题就是:
求两个串的所有子串中能够匹配上的最大长度是多少。
比如:"abcdkkk" 和 "baabcdadabc",
可以找到的最长的公共子串是"abcd",所以最大公共子串长度为4。
下面的程序是采用矩阵法进行求解的,这对串的规模不大的情况还是比较有效的解法。
请分析该解法的思路,并补全划线部分缺失的代码。
public class Main
{
static int f(String s1, String s2)
{
char[] c1 = s1.toCharArray();
char[] c2 = s2.toCharArray();
int[][] a = new int[c1.length+1][c2.length+1];
int max = 0;
for(int i=1; i<a.length; i++){
for(int j=1; j<a[i].length; j++){
if(c1[i-1]==c2[j-1]) {
a[i][j] = __________________; //填空
if(a[i][j] > max) max = a[i][j];
}
}
}
return max;
}
public static void main(String[] args){
int n = f("abcdkkk", "baabcdadabc");
System.out.println(n);
}
}
注意:只提交缺少的代码,不要提交已有的代码和符号。也不要提交说明性文字。
解析:这个题目其实是很多时候都能看到的,数据结构里面好像都有讲过,这里其实只要将这两个字符串都减一的情况下,本身的公共数加一就可以,但是我认为这个题目解法都很多种。
解法一:a[i-1][j-1]+1
解法二:f(s1.subString(i),s2.subString(j))+1
我当时做的就是第二种,我就觉得只要每次递归的时候字符串减一,然后回溯的时候加一就可以了。
如果有什么问题,欢迎指正。。
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
第14届蓝桥杯Python省赛真题-大学B组 第14届蓝桥杯Python省赛真题-大学B组 第14届蓝桥杯Python省赛真题-大学B组 第14届蓝桥杯Python省赛真题-大学B组 第14届蓝桥杯Python省赛真题-大学B组 第14届蓝桥杯Python省赛...
第八届蓝桥杯单片机初赛的试题之一是构建一个电子钟,这涉及到硬件接口编程、时钟电路设计以及显示驱动等多个知识点。 1. **单片机基础知识**:单片机,也称为微控制器,是一体化集成的微型计算机系统,包含CPU、...
第14届蓝桥杯Python省赛真题-大学A组 第14届蓝桥杯Python省赛真题-大学A组 第14届蓝桥杯Python省赛真题-大学A组 第14届蓝桥杯Python省赛真题-大学A组 第14届蓝桥杯Python省赛真题-大学A组 第14届蓝桥杯Python省赛...
第14届蓝桥杯Python省赛真题-大学C组 第14届蓝桥杯Python省赛真题-大学C组 第14届蓝桥杯Python省赛真题-大学C组 第14届蓝桥杯Python省赛真题-大学C组 第14届蓝桥杯Python省赛真题-大学C组 第14届蓝桥杯Python省赛...
【标题】"2018第九届蓝桥杯Java语言C组&答案(无第十题)"指的是2018年举办的第九届蓝桥杯编程竞赛中,针对Java语言的C组题目及其官方或个人提供的解答。蓝桥杯是一项旨在提升大学生及软件开发者编程能力的全国性...
第14届蓝桥杯Python省赛真题-研究生组 第14届蓝桥杯Python省赛真题-研究生组 第14届蓝桥杯Python省赛真题-研究生组 第14届蓝桥杯Python省赛真题-研究生组 第14届蓝桥杯Python省赛真题-研究生组 第14届蓝桥杯Python省...
【作品名称】:蓝桥杯单片机第六届省赛试题-温度记录器(试题+程序) 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】:...
本资源为第十四届蓝桥杯 Java C 组省赛真题,涵盖了 Java 编程基础知识点,包括结果填空和程序设计两种题型。本总结将对题目中的知识点进行详细说明。 一、结果填空题 结果填空题要求选手根据题目描述直接填写结果...
2019年4月1日蓝桥杯省赛第十届蓝桥杯真题JAVA(C组)
2016第八届蓝桥杯省赛试题及答案
个人整理的2015年第六届蓝桥杯决赛 Java本科C组试题,希望可以帮到大家。
【Java第十五届蓝桥杯大赛软件JavaB组真题】是针对Java编程技术的一场专业竞赛,旨在考察参赛者对Java语言的理解、应用及问题解决能力。蓝桥杯大赛作为国内知名的IT技能竞赛,其试题往往涵盖了Java的基础语法、面向...
蓝桥杯1~11届真题及解析,精选练习题,算法等等,蓝桥杯资料合集450M(Java和C、C++方向) 蓝桥杯精选试题完整版.rar 算法.zip 1届国际赛.rar 2届国际赛.rar 5届省赛.rar 6届国赛.rar 6届省赛.rar 7届国赛.rar 7届省...
蓝桥杯嵌入式第八届模拟题及答案 蓝桥杯” 第八届全国软件和信息技术专业人才大赛个人赛 (电子类)模拟试题-嵌入式设计与开发项目 第二部分:实践题 “温湿度监控设备”设计任务书 一. 功能简述 “温湿度监控设备...
第一层有1个,第二层有3个,第三层有6个,以此类推,这是一个等差数列,首项为1,公差为2(因为每层比上一层多2个)。第n层的元素个数可以通过公式求得:`n + (n-1) * 2`,即`n*(n+1)`。要得到前100层的总和,我们...
在第八届蓝桥杯省赛的单片机模拟试题中,参赛者被要求使用CT107D单片机竞赛板来设计并调试一个电子钟的功能。这个任务旨在考察选手对于单片机编程、硬件控制以及实时系统设计的能力。以下是关于这一项目的详细知识点...
8. **案例分析**:"嵌入式第八届省赛-模拟升降控制器.pdf"可能是一个具体的工程实例,涉及如何设计一个控制器,包括硬件选型、控制算法的实现以及软件编程等。通过这个案例,可以深入理解嵌入式系统在实际应用中的...
【标题】:“蓝桥杯单片机第八届省赛真题” 这道题目涉及的是“蓝桥杯”竞赛中关于单片机应用的部分,特别是如何利用单片机技术设计一个电子时钟。蓝桥杯是一项全国性的信息技术竞赛,旨在推动软件和电子信息专业...
蓝桥杯嵌入式真题第八届省赛-客观题-答案解析涉及了嵌入式系统设计与开发中的多个关键知识点,包括逻辑表达式、数字电路、微控制器内核、数据类型、通信接口、程序下载方式、接口菊花链连接、时钟源选择以及DMA控制...
【标题】"2018年省赛第九届蓝桥杯真题Java B组"是针对一项编程竞赛的真题集,主要针对Java语言的B组参赛者。蓝桥杯是一项国内知名的编程竞赛,旨在检验学生的算法设计和编程能力,尤其在解决实际问题上的应用。该...