資料結構實驗之串二 字串匹配(字串雜湊)

2021-09-25 12:20:28 字數 1489 閱讀 3464

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

輸入包含多組資料,每組測試資料報含兩行,第一行代表string1,第二行代表string2,string1和string2中保證不出現空格。(string1和string2大小不超過100字元)

對於每組輸入資料,若string2是string1的子串,則輸出"yes",否則輸出"no"。

abca

123456

45abc

dddyes

yesno

#include

#define ll long long

typedef

unsigned

long

long ull;

using

namespace std;

const ull base =

131;

ull mul[

1000010];

ull hash[

1000010];

intmain()

ull sum =0;

for(

int i =

0; i < len2; i++

)int flag =0;

int l =

1, r = len2;

while

(r <= len1)

if(flag) cout <<

"yes"

<< endl;

else cout <<

"no"

<< endl;

}return0;

}

雙雜湊方法
#include

#define ll long long

using

namespace std;

const ll base =

131;

const ll mod1 =

1e9+7;

const ll mod2 =

1e9+9;

struct node hash[

1000010];

ll mul1[

1000010];

ll mul2[

1000010];

intmain()

while

(cin >> str1 >> str2)

for(

int i =

0; i < len2; i++

)int l =

1, r = len2;

int flag =0;

while

(r <= len1)

if(flag) cout <<

"yes"

<< endl;

else cout <<

"no"

<< endl;

}return0;

}

資料結構實驗之串二 字串匹配

多組輸入一定要分開寫,竟然被卡了一上午。time limit 1000ms memory limit 65536k 有疑問?點這裡 給定兩個字串string1和string2,判斷string2是否為string1的子串。輸入包含多組資料,每組測試資料報含兩行,第一行代表string1,第二行代表s...

資料結構實驗之串二 字串匹配

time limit 1000ms memory limit 65536k 給定兩個字串string1和string2,判斷string2是否為string1的子串。輸入包含多組資料,每組測試資料報含兩行,第一行代表string1,第二行代表string2,string1和string2中保證不出現...

資料結構實驗之串二 字串匹配

time limit 1000ms memory limit 65536k 有疑問?點這裡 給定兩個字串string1和string2,判斷string2是否為string1的子串。輸入包含多組資料,每組測試資料報含兩行,第一行代表string1,第二行代表string2,string1和strin...