1. 程式人生 > >java實現兩個字串最大公共子字串

java實現兩個字串最大公共子字串

/**
 * @author weichen CHEN created on 2018/4/20
 * @version 2018/4/20  weichen CHEN
 */
public class Test {


    public static void main(String[] args) {

        String a = "abcabcabca";
String b = "ababcacccbcab";
        char[] x = a.toCharArray();
        char[] y = b.toCharArray();
        int count = 0
; int maxlength = 0; int start = 0; for (int k = 1; k <= y.length; k++){ for (int i = 0; i < x.length-k+1; i++) { for (int j = 0; j < y.length - k + 1; j++) { count=0; for (int l = 0; l < k; l++) if
(y[j + l] == x[i + l]) count++; if (count == k && k > maxlength) { maxlength = k; start = j; } } } } if(maxlength==0) System.out.println("no"); else for
(int i=0; i<maxlength; i++) System.out.println(y[start+i]); } }

相關推薦

java實現字串公共字串

/** * @author weichen CHEN created on 2018/4/20 * @version 2018/4/20 weichen CHEN */ public class Test { public static void main

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

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

Java實現演算法導論中公共序列(LCS)動態規劃法

1、問題: 求兩字元序列的最長公共字元子序列LCS 2、求解:動態規劃法                      動態規劃的思路就是用一個矩陣來記錄兩個字串中所有位置的兩個字元之間的匹配情況,若是匹配則為1,否則為0。然後求出對角線最長的1序列,其對應的位置就是最長匹配子

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

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

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) {

字串操作】 尋找字串中的 公共

*題目描述:請編寫一個函式,求2個字串的最長公共子串,n<20,字元長度不超過255.       例如有2個字串為:       Name some local bus.       local bus is high speed I/O bus close to

演算法題-字串公共

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

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

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

串的公共序列的長度

notes col length body 子字符串 使用遞歸 seq ons commons 1 public class CommonSubsequence { 2 3 public static int f(String s1,String s2){

java實現矩陣乘法 有錯誤希望有佬幫忙

//java實現兩個矩陣相乘 有個錯誤在下邊 有沒有哪個大佬幫我看看 十分感謝 package 實驗五; import java.util.Scanner; public class Matrix { private int rows; private int cols;

《程式設計師程式碼面試指南》求字串公共

/** * 題目: * 給定兩個字串 str1 和 str2,返回兩個字串的最長公共子串。 *舉例: * str1 = "1AB2345CD",str2 = "12345EF",返回"2345"。 */ /** * 解答: * 經典動態規劃的方法可以做到時間複

序列的公共序列的長度(遞迴解法)

本題主要採用的是遞迴思想(分類討論) 判斷當前兩個字串是否有一個長度為0,若有則直接返回0即可 判斷當前兩個字串中的第一位是否相同,若相同則直接雙方去掉第一位並返回呼叫該方法(引數為兩方截斷首位的字

字串公共串(動態規劃)

code如下: //Longest common sequence, dynamic programming method void FindLCS(char *str1, char *str2) { if(str1 == NULL || str2 == NULL)

【動態規劃】LCS演算法:求字串公共字串(連續)

LCS演算法的應用 問題描述:求兩字串的連續最大公共子字串 思路:根據上文LCS演算法求解兩字串的最大公共子序列(不連續),可以得到求解連續子字串的啟示,如圖所示,構造LCS矩陣vec,將兩個字串按矩

公共串LCS(Java實現

public class Lcs { public static String longest(String s1,String s2){ char ch1[]=s1.toCharArray(); char ch

JAVA動態規劃(二)--公共序列問題(LCS_subSequence)的三種解法與公共字串(LCS_subString)的種解法與長迴文串(LongestPalindrome)

動態規劃法 經常會遇到複雜問題不能簡單地分解成幾個子問題,而會分解出一系列的子問題。簡單地採用把大問題分解成子問題,並綜合子問題的解匯出大問題的解的方法,問題求解耗時會按問題規模呈冪級數增加。 為了節約重複求相同子問題的時間,引入一個數組,不管它們是否對最終

LCS字串公共

LCS問題就是求兩個字串最長公共子串的問題。解法就是用一個矩陣來記錄兩個字串中所有位置的兩個字元之間的匹配情況,若是匹配則為1,否則為0。然後求出對角線最長的1序列,其對應的位置就是最長匹配子串的位置。 下面是字串21232523311324和字串31212322344

java實現int數交換

操作 使用 不用 col int 個數 span 定義 交換 普通方法,進階方法,大神方法 1 @Test 2 public void test3(){ 3 int m = 5; 4 int n = 12; 5