思路:
首先確定好模式串和文字串,對模式串處理,得到nex陣列,即可確定最大子字串的長度;
當然我們要清楚,kmp()的作用和原理;
原理即始終遵循nex[i]所在的下標值,表示前i個字串與後i個字串相同;
例如:str[9]=" ababa
bc";str[6]='b';
nex依次對應:nex[1~8]:0 0 1 2 3 4 0
nex[6]=4:"在ababab"中指前4個字串:」abab「 與後四個「abab」相同;
然後就是兩個字串進行比較,注意輸入字串的起始下標和比較時,兩者的下標
方法一:c
#include #include int nex[10005];
char str1[1000005],str2[10005];
int cnt;
void get(int len2)
}void kmp(int len1,int len2)
}}int main()
return 0;
}
方法二:c
#include #include int nex[10005];
char str1[1000005],str2[10005];
int cnt;
void get(int len2)
{ memset(nex,0,sizeof(nex));//清零!!
int i = 0,j = -1;
nex[0] = -1;
while (i多次測試!!結果依然是輸入翻了車!!下次一定要記得檢測輸入!!!
字串 判斷子串
給定兩個陣列s和t 只包含小寫字母 判斷s是否為t刪除若干字元後得到的子串。若單純判斷是否為子串,過程比較簡單,只需要設定兩個指標。public boolean issubsequence string s,string t if is s.length return true else retur...
判斷字串子串行
判斷字串子串行 給定字串 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...