kmp的簡單應用

2021-07-16 04:34:16 字數 834 閱讀 1340

給定兩個字串string1和string2,判斷string2是否為string1的子串。

輸入包含多組資料,每組測試資料報含兩行,第一行代表string1(長度小於1000000),第二行代表string2(長度小於1000000),string1和string2中保證不出現空格。

對於每組輸入資料,若string2是string1的子串,則輸出string2在string1中的位置,若不是,輸出-1。

abc

a123456

45abc

ddd

1

4-1

提示

#include

#include

#include

int next[1000000];

void getnext(char s)

}int kmp(char s1,char s2)

else

}if(s2[j]=='\0')

return -1;

}int main()

return 0;

}第二:

#include

#include

#include

int next[1000000];

void getnext(char s)

else}}

int kmp(char s1,char s2)

else

}if(s2[j]=='\0')

return i-len2+1;

return -1;

}int main()

return 0;

}

KMP簡單應用

kmp簡單應用 time limit 1000ms memory limit 65536k 給定兩個字串string1和string2,判斷string2是否為string1的子串。輸入包含多組資料,每組測試資料報含兩行,第一行代表string1 長度小於1000000 第二行代表string2 長...

KMP簡單應用

給定兩個字串string1和string2,判斷string2是否為string1的子串。輸入包含多組資料,每組測試資料報含兩行,第一行代表string1 長度小於1000000 第二行代表string2 長度小於1000000 string1和string2中保證不出現空格。對於每組輸入資料,若s...

KMP簡單應用

給定兩個字串string1和string2,判斷string2是否為string1的子串。輸入包含多組資料,每組測試資料報含兩行,第一行代表string1 長度小於1000000 第二行代表string2 長度小於1000000 string1和string2中保證不出現空格。對於每組輸入資料,若s...