`
SIHAIloveYAN
  • 浏览: 119965 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

蓝桥杯java第八届第六题--最大公共子串

 
阅读更多
标题:最大公共子串

最大公共子串长度问题就是:
求两个串的所有子串中能够匹配上的最大长度是多少。

比如:"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省赛真题-大学B组 第14届蓝桥杯Python省赛...

    蓝桥杯单片机第八届初赛试题-电子钟-工程代码

    第八届蓝桥杯单片机初赛的试题之一是构建一个电子钟,这涉及到硬件接口编程、时钟电路设计以及显示驱动等多个知识点。 1. **单片机基础知识**:单片机,也称为微控制器,是一体化集成的微型计算机系统,包含CPU、...

    第14届蓝桥杯Python省赛真题-大学A组

    第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省赛真题-大学C组 第14届蓝桥杯Python省赛...

    2018第九届蓝桥杯Java语言C组&答案(无第十题)

    【标题】"2018第九届蓝桥杯Java语言C组&答案(无第十题)"指的是2018年举办的第九届蓝桥杯编程竞赛中,针对Java语言的C组题目及其官方或个人提供的解答。蓝桥杯是一项旨在提升大学生及软件开发者编程能力的全国性...

    第14届蓝桥杯Python省赛真题-研究生组

    第14届蓝桥杯Python省赛真题-研究生组 第14届蓝桥杯Python省赛真题-研究生组 第14届蓝桥杯Python省赛真题-研究生组 第14届蓝桥杯Python省赛真题-研究生组 第14届蓝桥杯Python省赛真题-研究生组 第14届蓝桥杯Python省...

    蓝桥杯单片机第六届省赛试题-温度记录器(试题+程序)

    【作品名称】:蓝桥杯单片机第六届省赛试题-温度记录器(试题+程序) 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】:...

    第十四届蓝桥杯 Java C组省赛真题

    本资源为第十四届蓝桥杯 Java C 组省赛真题,涵盖了 Java 编程基础知识点,包括结果填空和程序设计两种题型。本总结将对题目中的知识点进行详细说明。 一、结果填空题 结果填空题要求选手根据题目描述直接填写结果...

    2019年4月1日蓝桥杯省赛第十届蓝桥杯真题JAVA(C组)

    2019年4月1日蓝桥杯省赛第十届蓝桥杯真题JAVA(C组)

    2016第八届蓝桥杯省赛试题及答案

    2016第八届蓝桥杯省赛试题及答案

    2015年第六届蓝桥杯决赛 Java本科C组

    个人整理的2015年第六届蓝桥杯决赛 Java本科C组试题,希望可以帮到大家。

    Java第十五届蓝桥杯大赛软件JavaB组真题

    【Java第十五届蓝桥杯大赛软件JavaB组真题】是针对Java编程技术的一场专业竞赛,旨在考察参赛者对Java语言的理解、应用及问题解决能力。蓝桥杯大赛作为国内知名的IT技能竞赛,其试题往往涵盖了Java的基础语法、面向...

    蓝桥杯1~11届真题及解析,精选练习题,算法等等,蓝桥杯资料合集450M(Java和C、C++方向)2024整理

    蓝桥杯1~11届真题及解析,精选练习题,算法等等,蓝桥杯资料合集450M(Java和C、C++方向) 蓝桥杯精选试题完整版.rar 算法.zip 1届国际赛.rar 2届国际赛.rar 5届省赛.rar 6届国赛.rar 6届省赛.rar 7届国赛.rar 7届省...

    蓝桥杯嵌入式第八届模拟题及答案

    蓝桥杯嵌入式第八届模拟题及答案 蓝桥杯” 第八届全国软件和信息技术专业人才大赛个人赛 (电子类)模拟试题-嵌入式设计与开发项目 第二部分:实践题 “温湿度监控设备”设计任务书 一. 功能简述 “温湿度监控设备...

    第七届蓝桥杯Java 大学B组(省赛试题)答案

    第一层有1个,第二层有3个,第三层有6个,以此类推,这是一个等差数列,首项为1,公差为2(因为每层比上一层多2个)。第n层的元素个数可以通过公式求得:`n + (n-1) * 2`,即`n*(n+1)`。要得到前100层的总和,我们...

    第八届蓝桥杯省赛单片机模拟试题-程序设计部分.pdf

    在第八届蓝桥杯省赛的单片机模拟试题中,参赛者被要求使用CT107D单片机竞赛板来设计并调试一个电子钟的功能。这个任务旨在考察选手对于单片机编程、硬件控制以及实时系统设计的能力。以下是关于这一项目的详细知识点...

    蓝桥杯嵌入式第八届试卷及答案

    8. **案例分析**:"嵌入式第八届省赛-模拟升降控制器.pdf"可能是一个具体的工程实例,涉及如何设计一个控制器,包括硬件选型、控制算法的实现以及软件编程等。通过这个案例,可以深入理解嵌入式系统在实际应用中的...

    蓝桥杯单片机第八届省赛真题

    【标题】:“蓝桥杯单片机第八届省赛真题” 这道题目涉及的是“蓝桥杯”竞赛中关于单片机应用的部分,特别是如何利用单片机技术设计一个电子时钟。蓝桥杯是一项全国性的信息技术竞赛,旨在推动软件和电子信息专业...

    蓝桥杯嵌入式真题第八届省赛-客观题-答案解析

    蓝桥杯嵌入式真题第八届省赛-客观题-答案解析涉及了嵌入式系统设计与开发中的多个关键知识点,包括逻辑表达式、数字电路、微控制器内核、数据类型、通信接口、程序下载方式、接口菊花链连接、时钟源选择以及DMA控制...

    2018年省赛第九届蓝桥杯真题Java B组

    【标题】"2018年省赛第九届蓝桥杯真题Java B组"是针对一项编程竞赛的真题集,主要针对Java语言的B组参赛者。蓝桥杯是一项国内知名的编程竞赛,旨在检验学生的算法设计和编程能力,尤其在解决实际问题上的应用。该...

Global site tag (gtag.js) - Google Analytics