字串 判斷子串

2021-08-18 22:36:48 字數 667 閱讀 1128

給定兩個陣列s和t(只包含小寫字母),判斷s是否為t刪除若干字元後得到的子串。

若單純判斷是否為子串,過程比較簡單,只需要設定兩個指標。

public boolean issubsequence(string s, string t) 

if(is == s.length()) return true;

else return false;

}

若s比較短(小於100個字元),而t比較長(長至50000個字元),且s的個數比較多,需要不斷的尋找和判斷s中是否有t的子串,此時就要對演算法進行改進。

因為s和t只包含小寫字母,因此即使t長度比較長,但還是由26個字母組成的,可以把t中每個字母出現的下標記錄下來,然後根據下標來判斷:對於s中的後續字母,其在t中有比其前面字母大的下標。

public boolean issubsequence(string s, string t) 

for(int i = 0; i < t.length(); i++)

int index = -1;

for(int i = 0; i < s.length(); i++)

return true; //s遍歷完畢,沒有返回false,說明所有字元都找到對應的下標了

}

I Oulipo 判斷子字串

思路 首先確定好模式串和文字串,對模式串處理,得到nex陣列,即可確定最大子字串的長度 當然我們要清楚,kmp 的作用和原理 原理即始終遵循nex i 所在的下標值,表示前i個字串與後i個字串相同 例如 str 9 ababa bc str 6 b nex依次對應 nex 1 8 0 0 1 2 3...

判斷字串子串行

判斷字串子串行 給定字串 target和 source,判斷 target 是否為 source 的子串行。你可以認為 target 和 source 中僅包含英文小寫字母。字串 source可能會很長 長度 500,000 而 target 是個短字串 長度 100 字串的乙個子串行是原始字串刪除...

python 判斷字串是否包含子字串

第一種方法 in,主要是利用物件判斷 string helloworld if world in string print exist else print not exist 第二種方法 find string helloworld if string.find world 5 5的意思是worl...