`
功夫小当家
  • 浏览: 186488 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

求两个字符串的最长公共子串 (字母必须相邻)

阅读更多

上一篇《求最长公共子串(可以不相邻)》的另一种变换题目,这个相对于上一篇,稍稍简单,不过这个算法的时间复杂度不太好,更简单的算法,有时间我再整理下。

问题:求最长公共子串,字符必须相邻。

 

代码:

public class common {

 public static void findCommon(String s1, String s2) {
  int i;//第一个游标从0 ~ length-1游走
  int j;//第二个游标从i+1 ~ length-1 游走
  String same = "";
  for (i = 0; i < s1.length(); i++) {
   for (j = i; j < s1.length(); j++) {
    String sub = s1.substring(i, j);//截取str1的子串
    //判断str2里是否有该子串,如果有该字串的长度是否比之前得到的公共子串长度大?若大,则替换same。
    if ((s2.indexOf(sub) != -1) && sub.length() > same.length()) {
     same = sub;
    }
   }
  }
  System.out.println(same);
 }

 public static void main(String[] args) {
  String s1 = "abcdefghigjaaaaa";
  String s2 = "xyzabcdefigjaaaa";
  common.findCommon(s1, s2);
 }
}

0
2
分享到:
评论
1 楼 muyishuihan 2012-10-29  
Mark一下

相关推荐

    JavaScript自定义函数实现查找两个字符串最长公共子串的方法

    本文实例讲述了JavaScript自定义函数实现查找两个字符串最长公共子串的方法。分享给大家供大家参考,具体如下: //查找两个字符串的最长公共子串 function findSubStr(s1,s2){ var S=sstr= ,L1=s1.length,L2=s2....

    PHP实现求两个字符串最长公共子串的方法示例

    在编程领域,最长公共子串(Longest Common Substring,LCS)问题是一个经典的问题,它寻找两个或多个字符串中的最长连续子序列,这个子序列同时存在于所有字符串中。在这个问题中,我们专注于PHP如何解决两个字符串...

    C语言求两个字符串的最长公共子串

    在C语言中,求两个字符串的最长公共子串是一个经典的问题,它涉及到字符串处理和算法。最长公共子串是指在两个或多个字符串中都存在的、且长度最长的连续字符序列。这个问题在文本处理、数据比较和生物信息学等领域...

    用定长顺序存储结构表示串,求两个串的全部最长公共子串

    在本题目中,任务是使用定长顺序存储结构表示串,并找出两个字符串的最长公共子串。这是一个典型的字符串处理问题,通常在计算机科学和编程领域出现。以下是对这个任务的详细解析: 首先,我们需要理解“定长顺序...

    求N个字符串的最大公共子串

    求N个字符串的最长公共子串,N,字符串长度不超过255。例如N=3,由键盘依次输入3个字符串为 Whatislocalbus? Namesomelocalbuses. loca1busisahighspeedI/Obusclosetotheprocessor. 则最长公共子串为“local...

    python实现求两个字符串的最长公共子串方法

    求两个字符串的最长公共子串 思想:建立一个二维数组,保存连续位相同与否的状态 ''' def getNumofCommonSubstr(str1, str2): lstr1 = len(str1) lstr2 = len(str2) record = [[0 for i in range(lstr2+1)] for j...

    求两个字符串的最长公共字串

    题目要求编写一个C++程序来找到两个给定字符串中的最长公共子串。例如,对于字符串`a="abcrrrerads"`和字符串`b="afdabcssbcrrresswrds"`,最长公共子串为`"bcrrre"`。 #### 三、算法原理 本程序采用了一个简单的...

    查找最长公共子串

    现在,我们要寻找两个字符串a和b中最长的公共子串。这个问题可以通过动态规划来解决。动态规划是一种利用已解决问题的解来构建更复杂问题的解的方法,它能有效地避免重复计算,提高效率。 动态规划解决方案通常涉及...

    找两字符串中最大子串

    根据给定文件的信息,本文将详细介绍如何在两个字符串中寻找最大公共子串的算法实现。 ### 一、问题背景 在计算机科学中,查找两个字符串中的最大公共子串是一个非常实用的问题,它广泛应用于文本处理、生物信息学...

    编写程序求出所给出的字符串中最长的字母子串(以非字母隔开)。

    编写程序求出所给出的字符串中最长的字母子串(以非字母隔开)。例如字符串"Apple$12pear watermelon $ # Banana"中最长的字母子串为"watermelon"。有详细的解释

    最长公共子串MFC实现

    最长公共子串(Longest Common Substring,LCS)是一个在计算机科学中常见的字符串处理问题,它涉及到查找两个或多个字符串中的最长连续子序列,这个子序列同时存在于所有字符串中。MFC,全称为Microsoft Foundation...

    java实现字符串匹配求两个字符串的最大公共子串

    在Java编程中,实现字符串匹配并...总之,Java实现字符串匹配求两个字符串的最大公共子串是一个涉及字符串处理和动态规划的经典问题。通过理解上述算法思想和代码实现,开发者可以有效地处理文本数据的比较和分析任务。

    PTA 7-29 删除字符串中的子串

    PTA 7-29 删除字符串中的子串

    求最长的公共子串

    两个字符串里求最长的公共子串

    新建 WinRAR 压缩文件_最长公共子串_

    "最长公共子串"是指在两个或多个字符串中,长度最长的那个相同的部分字符串,它们在各自的字符串中都连续出现。例如,对于字符串"ABABC"和"BABCA",最长公共子串是"BABC"。这个问题在文本比较、数据挖掘、生物信息学...

    动态规划:最长公共子串 LCS

    **最长公共子串(Longest Common Substring, LCS)**是两个或多个字符串中的最长字符串,该字符串同时也是这些字符串的子串。这里需要注意区分子串与子序列的概念。子串必须在原字符串中连续出现,而子序列则不必...

    求两字符串的最长公共子字符串.docx

    标题中的“求两字符串的最长公共子字符串”指的是在两个给定的字符串中找到它们共有的最长连续子串。这是一个经典的计算机科学问题,通常在字符串处理、文本比较和算法设计中出现。描述提到的“用穷举法完成”,指的...

    删除字符串中的子串(原创)

    自己闲来没事写的字符串删除,事件复杂度为 n 欢迎大家讨论

Global site tag (gtag.js) - Google Analytics