判斷兩個字串中的最長相同子串

2021-08-21 20:32:39 字數 924 閱讀 2326

題目:判斷兩個字串中相同的最長字串?

思路:1、先找到較小的字串(a),較大字串為b;

2、迴圈a的字元c,判斷該字元是否存在於b中,若存在則繼續3,否則繼續2;

3、疊加a中字元c後的字元d與c組合成新的字串c,判斷新c是否在b中,在則繼續3,否則4;

4、判斷c的長度是否大於原結果串ret的長度,是則取c,否則不做操作。繼續執行2。

package com;

public class twostringcompare

/*** 獲取兩個字串最大的重複串(相同串)

* @title: getmaxsamestring

* @author csfkj

* @date 2023年7月28日 下午2:34:04

* @version v1.0

* @param s1

* @param s2

* @return

* @return: string

*/public static string getmaxsamestring(string s1, string s2)

//跟原結果比較,大則留著

if(ms.length() > ret.length())

} return ret;

}}

附註引發思考:

從以上步驟和**可以發現還存在乙個問題,就是a中存在大量重複的字串時,會重複執行步驟3,理論上這個是可以採用空間換時間的方式處理:新增乙個變數去儲存結果集來判斷改字串是否需要繼續判斷。在實現過程中,發現會留有大量的字串儲存在liststr中,感覺這個量超過了帶來的時間效益,也可能是測試字串過小的問題。

判斷兩個字串是否相同

data segment mess1 db computer software mess2 db computer software data ends code segment assume ds data,cs code start mov ax,data mov ds,ax mov es,ax...

獲取兩個字串中相同的子串

package day15 author qitm date 2020 5 15 21 51 描述 獲取兩個字串中相同的子串 思路 1.既然取得最大子串,先看短的那個字串是否在長的字串中 如果存在,短的那個字串就是最大字串 2.如果不是,那麼就將短的字串進行長度遞減的方式減去子串,去長串中判斷是否存...

兩個字串中最大相同的子串

3,兩個字串中最大相同的子串。qwerabcdtyuiop xcabcdvbn 思路 1,既然取得是最大子串,先看短的那個字串是否在長的那個字串中。如果存在,短的那個字串就是最大子串。2,如果不是呢,那麼就將短的那個子串進行長度遞減的方式去子串,去長串中判斷是否存在。如果存在就已找到,就不用在找了。...