1. 程式人生 > >找出兩個字串中最大的公共子串(java實現)

找出兩個字串中最大的公共子串(java實現)

import java.util.HashSet;
import java.util.Set;
public class Test {
public static void main(String[] args) {
String s=”jdfisdo27548ghdgyang”;
String s2=”jfiyang27543gdso”;
System.out.println(getResult(s, s2));
}
private static String getResult(String s, String s2) {
if(s.equals(s2)){
return s;
}
Set set = new HashSet();
get(set,s2);
String temp=”“;
for (String t : set) {
if(s.contains(t)&&t.length()>temp.length()){
temp=t;
}
}
return temp;
}
//只能得到子串不包括自身
public static void get(Set set,String s){
if(s.length()>1){
String s1;
for (int i = 1; i < s.length()-1; i++) {
//右邊的子串
s1=s.substring(i);
set.add(s1);
get(set, s1);
//左邊的子串
s1=s.substring(0,i+1);
set.add(s1);
get(set, s1);

        }
    }else{
        set.add(s);
    }
}

}

相關推薦

Java字串

[java] view plain copy print?// 找一個字串的最大子串    publicstaticvoid main(String[] args) {          String s1 = ”qwerabcdtyuiop”;          String s2 = ”xc

135、程式設計實現字串公共字串,如"abccade","dgcadde"的大子為 "cad"

35、程式設計實現:找出兩個字串中最大公共子字串,如"abccade","dgcadde"的最大子串為 "cad" /* 35、程式設計實現:找出兩個字串中最大公共子字串,如"abccade","dgcadde"的最大子串為 "cad" 不同於56的最長公共子串 DP題

字串公共java實現

import java.util.HashSet; import java.util.Set; public class Test { public static void main(String[] args) { String

編寫程式,獲取字串相同

private void test() { String a = "Valaienie"; String b = "Maierginle"; String max = a.length() > b.length() ? a : b; String min =

C程式設計——程式設計實現查詢字串公共2.0

1、 題目:程式設計實現查詢兩個字串的最大公共子串 示例:“aocdfe"和"pmcdfa"最大公共子串為"cdf” 注:最大公共子串有不止一個時,只輸出第一個最大子串 利用斐波那契數列數的思想 **2、**程式 #include <stdio.h> #include &

C程式設計——程式設計實現查詢字串公共1.0

1、 題目:程式設計實現查詢兩個字串的最大公共子串 示例:“aocdfe"和"pmcdfa"最大公共子串為"cdf” 注:最大公共子串有不止一個時,只輸出第一個最大子串 **2、**程式 #include <stdio.h> #include <string.h>

程式設計實現查詢字串公共

#include <stdio.h> #include <string.h> //程式設計實現查詢兩個字串的最大公共子串 //示例:"aocdfe"和"pmcdfa"最大公共子串為"cdf" void MyPub(char *str1, char *str2) {

java實現字串匹配問題之求字串公共

轉載請註明出處:http://blog.csdn.net/xiaojimanman/article/details/38924981 最近在專案工作中有一個關於文字對比的需求,經過這段時間的學習,總結了這篇部落格內容:求兩個字串的最大公共子串。 演算法思想:基於圖計算兩字串

演算法題-字串公共

題目:給定一個query和一個text,均由小寫字母組成。要求在text中找出以同樣順序連續出現在query中最長連續字母序列的長度。例如,query為“acbac”,text為“acaccbabb”,那麼text中的“cba”為最長的連續出現在query中的字元序列,因此

動態規劃求解字串公共問題

最大公共子串長度問題就是:求兩個串的所有子串中能夠匹配上的最大長度是多少。比如:"abcdkkk" 和 "baabcdadabc",可以找到的最長的公共子串是"abcd",所以最大公共子串長度為4。下面的程式是採用矩陣法進行求解的,這對串的規模不大的情況還是比較有效的解法。請

求任意字串相同

c語言# include<stdio.h> #include<string.h> int main(){ char a[100],b[100]; printf("s1="); scanf("%s",a); printf("s2="); s

python實現:求字串公共

假設s1 = 'abcdef'  ,s2 = 'mcdea',建立一個(len(s1)+1) x (len(s2)+1)的陣列,如下如所示的一個二維陣列,程式碼的操作流程是: # -*- coding

用字尾陣列求字串公共

對於兩個字串,不好直接運用字尾陣列,所以我們可以把兩個子串串中間用一個在字串中不會出現的字元連線起 來,比如'$‘,計算字尾陣列,檢查字尾陣列中所有相鄰字尾。分屬於兩個字串的字尾的lcp的最大值就是答案。 因為字串的任何一個子串都是這個字串某個字尾的字首。求A和B 的最長公

利用KMP演算法,求順序表儲存的字串公共

/*程式說明: * 程式是由順序表實現,功能為查詢兩字串中的最長公共子串; * 兩條字串分別由兩個順序表儲存; * 查詢思路是分解出短的那條字串的全部連續子串(例如abc分解為abc,ab,a,bc,b,c), * 再使用kmp演算法將該全部子串與長的那條字串進行匹配,找

SPOJ 1811. Longest Common Substring LCS,字串公共, 字尾自動機SAM

/* *********************************************** Author :kuangbin Created Time :2013-9-8 23:27:46 File Name :F:\2013ACM練習\專

公共序列Java實現——動態規劃

【問題描述】 給定2個序列X和Y,當另一序列Z既是X的子序列又是Y的子序列時,稱Z是序列X和Y的公共子序列。 給定2個序列X={A,B,C,B,D}和Y={B,D,C,A,B},找出X和Y的最長公共子序列{B,C,B}。 【分析】最長公共子序列問題具有最優子結構性質 設 X = {

字串相同的

求得短的字串和長的字串兩個字串中相同的字串段。    public static String getMaxSubString(String s1, String s2) {         String

隨筆-字串不相同的元素

題目: 給定兩個字串 s 和 t,它們只包含小寫字母。 字串 t 由字串 s 隨機重排,然後在隨機位置新增一個字母。 請找出在 t 中被新增的字母。 示例: 輸入: s = “abcd” t = “abcde” 輸出: e 解釋: ‘e’ 是那個被新增的字母。

字串相同的詞語,返回一個分值

前言: 由於筆者工作的需求,給定一個字串,需要從一堆字串中找出與其最相似的字串,網路的一些演算法發現跟自己的需求不匹配,於是自己寫了一個,話不多說,請看下文。 目標: 給定兩個字串,能將兩個字串中相同詞語的相似度返回一個分值。 計分方式: 分值跟次數的個數有關,具體

N整數的K個數

《尋找N個元素中的前K個最大者》方法總結是在這裡看到的 /algorithm/20111105/314362.html ,我覺得解法二和解法四用得廣泛一些,程式設計實現了一下。 利用快速排序中的partition操作 經過partition後,pivot左邊的序列sa都大於pivot右邊的序列sb;