上一篇《求最长公共子串(可以不相邻)》的另一种变换题目,这个相对于上一篇,稍稍简单,不过这个算法的时间复杂度不太好,更简单的算法,有时间我再整理下。
问题:求最长公共子串,字符必须相邻。
代码:
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);
}
}
分享到:
相关推荐
本文实例讲述了JavaScript自定义函数实现查找两个字符串最长公共子串的方法。分享给大家供大家参考,具体如下: //查找两个字符串的最长公共子串 function findSubStr(s1,s2){ var S=sstr= ,L1=s1.length,L2=s2....
本文实例讲述了C语言求两个字符串的最长公共子串的方法。分享给大家供大家参考。具体实现方法如下: #include "stdio.h" #include "string.h" #include "stdlib.h" void getCommon(char str1[],char str2[],char * ...
主要介绍了java实现求两个字符串最长公共子串的方法,是一道华为OJ上的一道题目,涉及Java针对字符串的遍历、转换及流程控制等技巧,需要的朋友可以参考下
主要介绍了PHP实现求两个字符串最长公共子串的方法,涉及php字符串与数组的遍历、运算、判断等相关操作技巧,需要的朋友可以参考下
求N个字符串的最长公共子串,N,字符串长度不超过255。例如N=3,由键盘依次输入3个字符串为 Whatislocalbus? Namesomelocalbuses. loca1busisahighspeedI/Obusclosetotheprocessor. 则最长公共子串为“local...
输入一个字符串,将输出该字符串最长对称子串及其长度,很精巧的算法
在随意给出的2个字符串中,找出它们共同的最长的子串。 【输入】 输入文件的第一行为一个整数2,接下来有2行,每行为一个字符串,每个字符串的长度均小于255。 【输出】 输出只有一行,即:共同的最长子串,若有多个...
今天小编就为大家分享一篇python实现求两个字符串的最长公共子串方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
把两个源字符串分别放在两个文本文件里,再把这两个文本文件放在程序所在目录下,运行时输入两个文件名就可以了.
编写程序求出所给出的字符串中最长的字母子串(以非字母隔开)。例如字符串"Apple$12pear watermelon $ # Banana"中最长的字母子串为"watermelon"。有详细的解释
通过编辑距离算法对两字符串相似度对比后顺序取出所有公共子串
输入两个字符串, 求它们最长公共字串的长度
找出一个字符串的最长子串,很简单.......
该文件实现了在两个字符串中寻找最大子串的算法,并附上代码,方便大家学习。
用本程序可得到字符串的相似度和字符串的公共子串以及编辑距离。
自己编写的C++程序,求两个字符串的最长公共字串。例如a="abcrrrerads",b="afdabcssbcrrresswrds",则结果为bcrrre